为什么R raster :: writeRaster()生成无法在Win10中显示的图片?

时间:2019-01-06 03:23:55

标签: r tiff envi

我读取了高光谱(.raw)文件,并将三个波段组合为“ gai_out_r”,然后输出如下:

writeRaster(gai_out_r,filepath,format="GTiff")

最后我得到了gai_out_r.tif

但是,为什么Win10不能将这个小的tif显示为我从envi输出相同图像的图片-将图像另存为--tif

Win10将显示两个提示,如下所示:

enter image description here

3 个答案:

答案 0 :(得分:0)

默认的Windows图像查看应用程序不支持“高光谱图像”,因为您仅读取并合并了.raw文件中的3个波段,因此生成的图像将是高光谱图像。您需要单独的专用软件来查看超立方体或也可以使用Spectrum-python对其进行查看。

在sPy中,使用envi.save_image 将其另存为ENVI类型的文件。要将其保存为rgb图像文件(可在Windows OS中读取),我们需要使用其他方法。

答案 1 :(得分:0)

问题原因:

我遇到了类似的问题,并认识到导出的 .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")

注意: 我意识到您的帖子是 2 年半前的...无论如何,这个答案是否可以帮助遇到此问题的其他人。

答案 2 :(得分:0)

您正在使用 writeRaster 写入 GTiff (GeoTiff) 格式的文件。要写入标准 tif 文件,您可以使用 tiff 方法。使用 writeRaster,您也可以改为写入 PNG

writeRaster(gai_out_r, "gai.png")