将ASC文件读入R

ari*_*ali 18 import r raster

我目前正在尝试将各种"ASC"文件中的信息提取到R中,以便对数据进行分析.

问题是我不确定如何读取文件.我尝试了标准的read.table函数,但所有数字都完全相同(-9999.00).为了排除数据损坏的可能性,我在另一个ASC文件中读取并得到了相同的结果.我唯一知道的是,它们之间的文件大小完全相同.

无论如何我可以阅读这些文件吗?我可以看看任何R包吗?

我绑了这个:

    x = read.table("Dropbox/MVZ/aet2009sep.asc")
    y = read.table("Dropbox/MVZ/aet2009oct.asc")
Run Code Online (Sandbox Code Playgroud)

我的产出是

    > head(x, n =20)
         V1        V2
    1         ncols    3486.0
    2         nrows    4477.0
    3     xllcorner -374495.8
    4     yllcorner -616153.3
    5      cellsize     270.0
    6  NODATA_value   -9999.0
    7      -9999.00   -9999.0
    8      -9999.00   -9999.0
    9      -9999.00   -9999.0
    10     -9999.00   -9999.0
    11     -9999.00   -9999.0
    12     -9999.00   -9999.0
    13     -9999.00   -9999.0
    14     -9999.00   -9999.0
    15     -9999.00   -9999.0
    16     -9999.00   -9999.0
    17     -9999.00   -9999.0
    18     -9999.00   -9999.0
    19     -9999.00   -9999.0
    20     -9999.00   -9999.0

    head(y, n =20)
         V1        V2
    1         ncols    3486.0
    2         nrows    4477.0
    3     xllcorner -374495.8
    4     yllcorner -616153.3
    5      cellsize     270.0
    6  NODATA_value   -9999.0
    7      -9999.00   -9999.0
    8      -9999.00   -9999.0
    9      -9999.00   -9999.0
    10     -9999.00   -9999.0
    11     -9999.00   -9999.0
    12     -9999.00   -9999.0
    13     -9999.00   -9999.0
    14     -9999.00   -9999.0
    15     -9999.00   -9999.0
    16     -9999.00   -9999.0
    17     -9999.00   -9999.0
    18     -9999.00   -9999.0
    19     -9999.00   -9999.0
    20     -9999.00   -9999.0
Run Code Online (Sandbox Code Playgroud)

And*_*lva 27

更新:可以直接从'raster'包中读取.asc文件(也称为ESRI ASCII光栅文件)raster.帮助说:

如果x是文件名,则会识别以下附加变量:

本机:逻辑.除非缺少包rgdal,否则默认值为FALSE.如果为TRUE,则读取和写入...和Arc ASCII文件是使用本机(光栅程序包)驱动程序完成的,而不是通过rgdal ....

library(raster)
r = raster("C:\\...\\Dropbox/MVZ/aet2009sep.asc")
plot(r)
Run Code Online (Sandbox Code Playgroud)

编辑2 [废弃]:

另一个是raster()功能,rgdal正确安装包.

library(rgdal)
r = raster("C:\\...\\Dropbox/MVZ/aet2009sep.asc")
plot(r)
Run Code Online (Sandbox Code Playgroud)

编辑1 [废弃]:

该软件包adehabitat现已弃用.目前,它在加载时会发出警告:

使用它是危险的,因为错误将不再被纠正.现在建议使用包adehabitatMA,adehabitatLT,adehabitatHR和adehabitatHS.
...

原始答案[已废弃]:

使用import.ascR package adehabitat中的功能(参见第92页):

library(adehabitat)
asc = import.asc("C:\\...\\Dropbox/MVZ/aet2009sep.asc")

#plot asc object.
library(raster)
r = raster(asc)
plot(r)
Run Code Online (Sandbox Code Playgroud)