如何将栅格数据从Arcmap导出为R * .grd文件格式?


10

我想使用R中的栅格数据,但是从ArcMap导出栅格数据集时遇到问题。通过“导出数据” / GRID,我得到一个扩展名为* .aux的文件。我需要的是* .grd。

有人可以帮我吗?



5
这将使可能的受访者知道.grd文件的格式特定于R中的栅格数据包。不要期望找到(尚未)以任何方式在Arc *中编写此格式,并且要避免混淆此格式。以及使用“ grd”作为扩展名的其他格式。
ub

您原始的栅格格式是什么?@RobertH指出,您可以直接将其读入R,而无需导出。
djq 2011年

Answers:


6

答案是不导出,因为没有必要。您可以使用光栅包直接读取Arc *网格数据(如果有库rgdal可用)。而且,如果要导出,最好避免使用ascii(例如,使用GTiff)。

library(raster)
library(rgdal)
#For an arc/grid (albem_s1 is the folder!):
r <- raster("G:/USGS/DEM/7_5min/VA/albem_s1")

#For a geotiff
r <- raster("G:/USGS/DEM/7_5min/VA/albem_s1.tif")

6

编辑

@RobertH 在此线程的其他地方提供了一种更方便的读取方法。您可以使用此处描述的相同方法直接读取Arc *网格数据集:只需在raster命令中引用网格数据文件所在的文件夹即可。

原始回复

在Arc *中,使用Raster to ASCII工具(位于中Conversion Tools|From Raster)以ASCII格式导出网格。

在中R,加载rasterrgdal包,然后使用raster函数读取栅格,如

r <- raster("G:/USGS/DEM/7_5min/VA/albem_s1.txt")
plot(r)

要创建.grd版本,请使用writeRaster,如

writeRaster(r, "G:/USGS/DEM/7_5min/VA/albem_s1.grd")

控制台响应将描述输出的.grd部分中的内容(数据位于.gri文件中),如

class       : RasterLayer 
filename    : G:/USGS/DEM/7_5min/VA/albem_s1.grd 
nrow        : 1415 
ncol        : 1133 
ncell       : 1603195 
min value   : 70 
max value   : 960 
projection  : +proj=utm +zone=17 +ellps=GRS80 +datum=NAD83 +units=m +no_defs +towgs84=0,0,0 
xmin        : 686280 
xmax        : 720270 
ymin        : 4179990 
ymax        : 4222440 
xres        : 30 
yres        : 30 

这是非常小的一点,但是如果将其导出为ascii,则文件类型是否应为*.asc?我想两者都可以,但是如果您尝试*.txt使用ArcGIS 打开文件,则可能会出现问题。
djq 2011年

1
文件格式和文件扩展名是独立的@celenius。的确,某些操作系统和某些软件使用扩展名作为格式的提示(尽管好的软件会自动覆盖该提示,或者会应用户的要求覆盖该提示)。但是,在此示例中,名称至少没有关系。如果在ArcGIS中导入或打开扩展名为.txt的文件时确实遇到问题,则可以随时对其进行重命名,但这不在此问题范围内。
ub

我很欣赏文件格式和文件扩展名之间的区别。我主要是好奇为什么人们会选择将文件输出为.txt而不是.asc。我认为这可能违反直觉。
djq 2011年

@celenius 在此示例中,输入的扩展名为.txt(而不是输出)。它来自一个实际示例,其中.txt文件最初是由较旧的软件生成的。
whuber

2

似乎ESRI GRID文件没有单个扩展名为.grd的文件。相反,它似乎是ArcMap视为一个文件的多文件夹/多文件格式(类似于shapefile和ArcInfo coverage的工作方式)。无论如何,.aux文件都是GRID格式的帮助程序文件,用于存储无法存储在栅格本身中的信息。这里是一些谈论它的链接:

关于辅助文件 http://webhelp.esri.com/arcgiSDEsktop/9.3/index.cfm?TopicName=About_auxiliary_files

.aux文件何时创建? http://support.esri.com/cn/knowledgebase/techarticles/detail/29821


2
人们,请不要在不解释原因的情况下投票,除非它正在渗出明显的问题。在这种情况下,我不明白。((嗨,Damon,欢迎来到GIS.se。它会变得更好,诚实。;
马特·威尔基(Matt wilkie

请注意,@ Matt,downvote按钮的悬停文本显示“此答案没有用...”,并不是说它是错误的。问题并没有询问.aux文件是什么:它(明确,简洁地)请求帮助来创建.grd文件以输入到R。所以在我看来,尽管此回复中提供的建议是正确的,但它失败了有用性测试。在这方面,票选服务会通过使他们远离可能是善意,正确,甚至写得很好和有趣的建议,从而为未来的读者服务,但(在社区看来)可能是徒劳的。
ub

谢谢@whuber。提醒人们看一下实际呈现的内容,并将其与我随着时间的推移在脑海中积累的含义进行对比会有所帮助。有一些大陆漂移!
马特·威尔基,

1

将您的栅格数据转换为ascii并保存在您的任何目录中。然后n R

library(rgdal)
libray(sp)
data<-readGDAL("C:/filepath/file")

这将读取您的ascii网格文件,您也可以通过各种命令(例如

summary(data)

将栅格数据另存为TIFF,然后使用相同的包(rgdal)读取将读取为的tiff文件

data<-readGDAL("C:/filepath/file.tiff")
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.