使用R打开ASCII文件 [英] Opening an ASCII file using R
本文介绍了使用R打开ASCII文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正尝试在R中打开一个ASCII文件。该文件是从热像仪软件导出的。它有农作物的温度值。我正在使用以下代码:
library(raster)
r = raster("AA092800_1.asc")
plot(r)
但每次我都跟错了 "不能识别为支持的文件格式 .rasterObjectFromFile中出错(x,band=band,objecttype="RasterLayer",: 无法从此文件创建RasterLayer对象。"
在检查文件时,我发现有逗号而不是小数点,我将所有逗号都替换为小数点,但仍然存在相同的问题。请帮帮我。
随函附上ASCII文件。original ascii file
将相同的文件逗号替换为小数点文本文件。comma replaced with decimal point text file推荐答案
df1 <- read.table("AA092800_1.asc", skip = 11, header = FALSE, sep = " ")
head(df1, 2)
# V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18 V19 V20 V21 V22 V23 V24 V25 V26 V27 V28 ...
# 1 36,46 36,33 36,40 36,37 36,10 36,27 36,50 36,49 36,54 36,52 36,51 36,63 36,91 36,97 36,81 36,89 37,12 36,70 37,24 37,29 37,65 37,33 37,13 37,26 37,41 37,14 38,01 37,84 ...
# 2 36,68 36,38 36,39 36,41 36,32 36,42 36,50 36,53 36,39 36,49 36,53 36,54 36,62 36,84 37,06 37,16 37,48 37,60 37,35 37,32 37,39 37,12 37,06 37,33 37,46 37,99 37,87 38,15 ...
这次使用dec = ","
表示,
为十进制值
df1 <- read.table("AA092800_1.asc", skip = 11, header = FALSE, sep = " ", dec = ",")
head(df1, 2)
# V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18 V19 V20 V21 V22 V23 V24 V25 V26 V27 V28 ...
# 1 36.46 36.33 36.40 36.37 36.10 36.27 36.5 36.49 36.54 36.52 36.51 36.63 36.91 36.97 36.81 36.89 37.12 36.7 37.24 37.29 37.65 37.33 37.13 37.26 37.41 37.14 38.01 37.84 ...
# 2 36.68 36.38 36.39 36.41 36.32 36.42 36.5 36.53 36.39 36.49 36.53 36.54 36.62 36.84 37.06 37.16 37.48 37.6 37.35 37.32 37.39 37.12 37.06 37.33 37.46 37.99 37.87 38.15 ...
对于另一个文件,找到数据开始的行号,并将该行号输入skip
参数。
栅格数据需要用,
df1 <- read.table("AA092800_1.asc", skip = 11, header = FALSE, sep = " ")
library('raster')
df2 <- as.raster(as.matrix(df1))
head(df2)
# "36,46" "36,68" "36,82" "36,75" "36,67" "36,94"
class(df2)
# [1] "raster"
这篇关于使用R打开ASCII文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文