在使用raster()包在R中导入USDA作物数据层(GTIFF)时出现问题

3

我已经下载了USDA农作物数据图层(数据可在此处获取,注意文件较大:http://www.nass.usda.gov/research/Cropland/SARS1a.htm),并希望将其导入R进行分析。我已经导入了其他大型GTIFF文件(例如LANDSAT数据),但在调用函数时出现以下错误:

r <- raster(file)

Error in .rasterObjectFromFile(x, band = band, objecttype = "RasterLayer",  :
    Cannot create a RasterLayer object from this file.

其中“file”是USDA提供的任何.tif文件之一(我正在使用中西部地区的编译版本)。

我怀疑问题在于GTiff是分类数据(土地利用类别),而不是真正的序数/光谱数据,但我不明白为什么它在图像编辑器(例如Preview)中可以正常显示,但在R/GDAL中却无法运行。

谢谢您的帮助。

编辑:如果应该在GIS论坛上发布此内容,请告诉我。一般来说,处理空间问题的编程方法都在这里吧?

2个回答

1
我能够使用相同的文件重新创建您的错误消息,并且似乎GDAL需要比仅在Mac上的主目录更深的路径名。也就是说,所需的路径名要回到 /Users/myname/cdl_tm_r_nv_2010_utm11.tif,而不仅仅是您的USDA作物文件示例中的~/cdl_tm_r_nv_2010_utm11.tif。我设法打开了该文件。
library(raster)
r <- raster(file.choose())

然后只需导航到GeoTiff。


谢谢Jim,但不幸的是那个解决方案对我也不适用。使用file.choose()或r <- raster("/cdl_tm_r_ia_2010_utm15.tif")从我的硬盘直接读取文件时,我会遇到同样的错误:Error in .rasterObjectFromFile(x, band = band, objecttype = "RasterLayer", : Cannot create a RasterLayer object from this file.还有什么想法吗?请注意,如果raster无法找到GeoTiff,则会附加一个(文件不存在)警告,因此这里发生了其他事情。感谢您的帮助——Nick。 - Nick

1

嗯,将文件重命名为“temp.tif”或类似名称解决了问题。非常奇怪,因为文件名只包含a-z、0-9和_字符。

对于其他遇到GDAL问题的人:建议尝试这个方法。如果有人知道真正的根本问题,请告诉我。原始文件名是cdl_tim_r_ia_2010_utm15.tifcdl_tm_r_il_2010_utm16.tif等。

谢谢。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接