我在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
答案 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
值不会产生任何错误消息,因此您需要小心他们所有拼写正确。