导出具有空间信息的复合RGB图像,R

时间:2017-06-21 18:01:47

标签: r gis

我在R中处理数百个4波段图像,需要帮助才能完成一项非常简单的任务。作为处理的一部分,我需要导出单波段RGB合成,以保持原始GeoTiff的空间信息。在其他软件中,我已经导出了.jgw文件,但我需要能够在R中执行此操作。这些图像将用作底图并送入另一个映射界面。我搜索和搜索,只能找到如何plotRGB()以及如何writeRaster()。 PlotRGB丢失空间信息,writeRaster()生成多波段图像。

有什么想法吗? R中有一个可以使用的内置栅格。

library(raster)
library(rgdal)
r <- raster(system.file("external/test.grd", package="raster"))
x <- RGB(r)
plotRGB(x)  #Is there a way to output this where it will maintain spatial information?
writeRaster(x, filename="file.tif")  #This produces a 3-band tiff, not a composite

1 个答案:

答案 0 :(得分:1)

writeRaster函数可以使用options参数将选项传递给基础GDAL库(例如,GeoTIFF选项记录为here)。选项TFW=YES会写出.tfw世界文件,该文件与.jgw文件相同。

现在,&#34;复合RGB&#34;在TIFF世界中不是标准术语;它似乎特定于&#34; ArcMap&#34;和朋友们一起,所以很难说出这是什么意思,但是你可以产生人们通常认为的标准&#34;通过指定颜色分量的数据类型为1字节无符号整数(datatype="INT1U")的RGB TIFF格式,因此以下内容可以执行您想要的操作:

writeRaster(RGB(r), filename="file2.tif", datatype="INT1U",
    options="TFW=YES", format="GTiff")

据我所知,无法识别或拼写错误的options值不会产生任何错误消息,因此您需要小心他们所有拼写正确。