要提取ENVI .hdr文件的特定信息,我想使用caTools :: read.ENVI()将其读取到R中。不幸的是,R只会抛出ERROR消息,而我不知道如何解决此问题。
到目前为止我尝试过的是:
# install.packages("rgdal")
# install.packages("raster")
# install.packages("caTools")
library("rgdal")
library("raster")
library("caTools")
hdr_dir <- "D:/ExploreR/X_Test/01_data/dataset.hdr"
hdr_file <- read.ENVI(hdr_dir, headerfile = paste(hdr_dir, ".hdr", sep = ""))
# Error in read.ENVI(hdr_dir, headerfile = paste(hdr_dir, ".hdr", sep = "")) : read.ENVI: Could not open input header file: D:/ExploreR/X_Test/01_data/dataset.hdr.hdr
有人知道如何解决这个问题吗?非常感谢您的提前帮助!
答案 0 :(得分:0)
文件名是dataset
还是dataset.hdr
?
似乎您在两次编写扩展名“ .hdr”。
应该是:
hdr_dir <- "D:/ExploreR/X_Test/01_data/dataset"
答案 1 :(得分:0)
base :: readLines()以某种方式做到了!
hdr_file <- readLines(con = "D:/ExploreR/X_Test/01_data/dataset.hdr")
答案 2 :(得分:0)
这应该有效
read.ENVI("D:/ExploreR/X_Test/01_data/dataset.hdr")
在代码中,应该将创建文件名与使用文件名分开。您在创建文件名时犯了一个错误。首先创建它,将其分配给变量,然后使用file.exists
测试它是否存在。另外,要创建文件名,最好使用file.path
比paste
。
library("caTools")
dirname <- "D:/ExploreR/X_Test/01_data/"
filename <- file.path(dirname, "dataset.hdr")
file.exists(filename)
x <- read.ENVI(filename)
或者简单地
f <- "D:/ExploreR/X_Test/01_data/dataset.hdr"
x <- read.ENVI(f)