【发布时间】:2021-05-28 18:16:11
【问题描述】:
我读取了我的高光谱(.raw)文件并将三个波段组合到“gai_out_r”然后我输出如下:
writeRaster(gai_out_r,filepath,format="GTiff")
我终于得到了 gai_out_r.tif
但是,为什么Win10不能把这个小tif显示为我从envi--save image as--tif输出的图片一样
Win10显示两个tiff如下:
【问题讨论】:
我读取了我的高光谱(.raw)文件并将三个波段组合到“gai_out_r”然后我输出如下:
writeRaster(gai_out_r,filepath,format="GTiff")
我终于得到了 gai_out_r.tif
但是,为什么Win10不能把这个小tif显示为我从envi--save image as--tif输出的图片一样
Win10显示两个tiff如下:
【问题讨论】:
默认的 windows 图像查看应用程序不支持高光谱图像-因为您只是从 .raw 文件中读取和组合 3 个波段,因此生成的图像将是高光谱图像。您需要有单独的专用软件才能查看超立方体或也可以使用spectral-python查看。
在 sPy 中,使用envi.save_image ,只会将其保存为 ENVI 类型的文件。要将其保存为 rgb 图像文件(在 windows 操作系统中可读),我们需要使用其他方法。
【讨论】:
envi.save_image 会将其保存为具有您指定的波段编号的超立方体。我们可以使用 save_rgb 等不同的命令将其保存为具有 3 个波段(R、G、B)的普通彩色图像。我对 R 不是很熟悉,但这是关于 sPy 的。
save_rgb 之间有什么区别。它可能与计算机存储的数据格式有关?我将尝试使用 sPy 来找出答案。再次感谢!
R 函数 raster::writeRaster() 完全能够编写 Windows 可以理解的 .tif 文件。您不必将其保存为 .png 或使用其他程序。您只需将正确的选项传递给writeRaster()(请参阅我的回答)。
您正在使用writeRaster 写入 GTiff (GeoTiff) 格式文件。要写入标准 tif 文件,您可以使用 tiff 方法。使用writeRaster,您也可以改为写入PNG
writeRaster(gai_out_r, "gai.png")
【讨论】:
问题原因:
我遇到了类似的问题,我发现导出的 .tif 文件的位深度与我可以打开的 .tif 图像不同。这些图像无法使用通用应用程序显示,尽管它们没有损坏,我可以在 R 或 QGIS 中打开它们。因此,这些值的编码方式是 Windows 所不希望的。
当您键入?writeRaster() 时,您会发现使用raster::writeRaster() 函数保存.tif(或其他格式)有多种选择。单击其中的链接可访问dataType {raster} 帮助站点,您会发现有多种整数类型可供选择。
解决方案(编写 Windows 可读的 GeoTIFF):
我设置了以下选项以使生成的 .tif 文件可读(注意datatype 选项):
writeRaster(raster, filename = "/path/to/your/output.tif",
format = "GTiff", datatype = "INT1U")
注意: 我意识到您的帖子是两年半前的...无论如何,这个答案可以帮助遇到这个问题的其他人。
【讨论】: