【发布时间】:2021-08-25 09:13:39
【问题描述】:
我有一个脚本来循环选择网络 cdf 文件。打开文件,提取数据,然后再次关闭。我以前用过很多次,它没有问题。我最近收到了一组新的文件来运行相同的代码。我可以使用ncdf4 包和nc_open() 函数单独检查文件。这些文件看起来很好,没有损坏。但是,当我运行循环时,该函数不会让我打开文件并且我收到此错误:
Error in R_nc4_open: NetCDF: HDF error
当我运行循环进行检查时,一切都很好并且文件打开了。它只是无法在循环中打开。代码没有问题。
以前有没有人遇到过这种情况,非损坏的网络 cdf 文件只是偶尔出现这个错误。即使在循环之外,我也可以运行代码并第一次得到错误,然后再次运行它而不更改任何内容并且连接正常。
不知道如何解决这个问题,所以只是寻找关于为什么会发生这种情况的建议。
代码sn-p:
targetYear <- '2005-2019'
variables <- c('CHL','SSH')
ncNam <- list.files(folderdir, '.nc', recursive = TRUE)
for(v in 1:length((variables)))
{
varNam <- unlist(unique(variables))[v]
# Get names corresponding to variable
varLs <- ncNam[grep(varNam, basename(ncNam))]
varLs <- varLs[grep(targetYear, varLs)]}
varLs <- varLs[1]
export <- paste0(exportdir,varNam,'/')
dir.create(export, recursive = TRUE)
if(varNam == 'Proximity1km' | varNam == 'Proximity200m'| varNam ==
'ProximityCoast'| varNam == 'Bathymetry'){
fileNam <- varLs
ncfilename <- paste0(folderdir, fileNam)
print(ncfilename)
# Read ncfile
ncfile <- nc_open(ncfilename)
nc_close(ncfile)
gc()
} else {
fileNam <- varLs
ncfilename <- paste0(folderdir, fileNam)
print(ncfilename)
# Read ncfile
ncfile <- nc_open(ncfilename)
nc_close(ncfile)
gc()}`
【问题讨论】:
-
除非您提供数据和复制问题的代码 sn-p,否则我怀疑这可以在这里回答。请阅读stackoverflow.com/questions/5963269/…