【问题标题】:R how to read ENVI .hdr-file?R 如何读取 ENVI .hdr 文件?
【发布时间】:2019-08-29 06:53:59
【问题描述】:

要提取 ENVI .hdr 文件的特定信息,我想使用 caTools::read.ENVI() 将其读入 R。不幸的是,R 只是抛出错误消息,我不知道如何解决这个问题。

到目前为止我尝试过的如下:

# 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

有人知道如何解决这个问题吗?非常感谢您提前提供的帮助!

【问题讨论】:

    标签: r raster envi


    【解决方案1】:

    这应该可以工作

    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)
    

    【讨论】:

      【解决方案2】:

      文件名是dataset 还是dataset.hdr? 看来您正在编写两次扩展名“.hdr”。

      应该是:

      hdr_dir <- "D:/ExploreR/X_Test/01_data/dataset"
      

      【讨论】:

      • 感谢您的回答!是的,我也注意到了,但不幸的是我不工作,我只是收到错误消息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 ......这真的很烦人,当我想指向数据集时似乎有些事情搞砸了.. .我已经研究过该功能的帮助页面,但这也没有帮助。
      【解决方案3】:

      base::readLines() 以某种方式做到了!

      hdr_file <- readLines(con = "D:/ExploreR/X_Test/01_data/dataset.hdr")
      

      【讨论】:

        猜你喜欢
        • 2018-08-05
        • 1970-01-01
        • 2022-12-10
        • 2021-04-05
        • 2011-11-24
        • 1970-01-01
        • 2022-10-21
        • 2017-02-15
        相关资源
        最近更新 更多