我目前正在尝试将各种"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)
| 归档时间: |
|
| 查看次数: |
25097 次 |
| 最近记录: |