导出包含空间信息的合成RGB图像,R

导出包含空间信息的合成RGB图像,R,r,gis,R,Gis,我正在用R处理数百张4波段图像,需要帮助完成可能非常简单的任务。作为处理的一部分,我需要导出一个单波段RGB合成图,以保持原始GeoTiff的空间信息。在其他软件中,我导出了一个.jgw文件,但我需要能够在R中这样做。这些图像将用作底图,并输入到另一个映射界面。我搜索了又搜索,只能找到如何使用plotRGB()和如何使用writerater()。PlotRGB会丢失空间信息,writeRaster()会生成多波段图像 有什么想法吗?在R中有一个内置的光栅可以使用 library(raster)

我正在用R处理数百张4波段图像,需要帮助完成可能非常简单的任务。作为处理的一部分,我需要导出一个单波段RGB合成图,以保持原始GeoTiff的空间信息。在其他软件中,我导出了一个.jgw文件,但我需要能够在R中这样做。这些图像将用作底图,并输入到另一个映射界面。我搜索了又搜索,只能找到如何使用plotRGB()和如何使用writerater()。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
库(光栅)
图书馆(rgdal)

rwriterater
函数可以使用
options
参数将选项传递给基础GDAL库(例如,GeoTIFF选项被记录在案)。选项
TFW=YES
将写出一个
.TFW
世界文件,该文件似乎与
.jgw
文件相同

现在,“复合RGB”不是TIFF世界的标准术语;它似乎特定于“ArcMap”和friends,因此很难说出它的真正含义,但您可以通过指定颜色组件的数据类型为1字节无符号整数(
datatype=“INT1U”
)来生成人们通常认为的“标准”RGB TIFF格式,因此以下操作可以满足您的需要:

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

据我所知,无法识别或拼写错误的
选项
值不会生成任何错误消息,因此您需要注意它们的拼写是否正确。

谢谢您的回复。我意识到我应该能够从GDAL传递参数,但我不知道如何传递。您提供的脚本确实生成了TFW,这是完全可以接受的,但TIFF仍然是三个乐队而不是一个乐队。我想以某种方式创建一个单波段合成。如果您熟悉QGIS或ArcMap,这将类似于使用渲染器导出光栅。我不熟悉QGIS或ArcMap。不幸的是,术语“复合RGB”似乎是特定于该软件/领域的,而不是TIFF世界中的标准术语,因此很难从技术角度判断它们的含义。。但是,指定
datatype=“INT1U”
似乎会生成更典型的RGB TIFF,这可能就是“复合RGB”的意思,因此我相应地修改了我的答案。感谢您再次访问。我尝试了你所做的修改,但它仍然生成了一个3波段图像。我也听说过我正在寻找的输出是“合并通道”或“合并带”。这个链接可能更好地解释了我在寻找什么:澄清一下,图形世界中的Tiff和地图世界中的GeoTiff的唯一区别是包含了空间参照。在图形世界中,我试图做的是组合通道(而不是有蓝绿红通道的图像,输出将有一个通道)。问题是术语“复合RGB TIFF”在GIS世界及其软件文档之外似乎没有任何意义,我也没有看到任何文档(包括您链接的内容)描述了该术语在符合性TIFF的所需技术特征方面的含义。如果您有一个可公开访问的复合RGB TIFF文件示例,我可以下载并检查,也许我可以提供进一步的帮助。否则,我就难倒了。