Tôi đang cố gắng tạo tệp NetCDF đa chiều sử dụng gói R ncdf. Tôi đang làm việc với các quan sát khí hậu hàng ngày cho một bộ 1500 điểm, số quan sát là ~ 18250 cho mỗi điểm. Vấn đề là cấu trúc của tập tin NetCDF (create.ncdf) chiếm 4Gb và mỗi điểm làm cho kích thước của tập tin bằng cách tăng hơn 3 Gb (put.var.ncdf)Tạo NetCDF đa chiều trong R
Đây là mã tôi đang sử dụng:
# Make a few dimensions we can use
dimX <- dim.def.ncdf("Long", "degrees", Longvector)
dimY <- dim.def.ncdf("LAT", "degrees", Latvector)
dimT <- dim.def.ncdf("Time", "days", 1:18250, unlim=FALSE)
# Make varables of various dimensionality, for illustration purposes
mv <- -9999 # missing value to use
var1d <- var.def.ncdf("var1d", "units", dimX, mv,prec="double")
var2d <- var.def.ncdf("var2d", "units", list(dimX,dimY), mv,prec="double")
var3d <- var.def.ncdf("var3d", "units", list(dimX,dimY,dimT), mv,prec="double")
# Create the test file
nc <- create.ncdf("writevals.nc", list(var1d,var2d,var3d))
# !!Creates a nc file with + 4 Gb
# Adding the complete time series for one point (the first point in the list of the dataset)
put.var.ncdf(nc, var3d,dataset[[1]], start=c(Longvector[1],Latvector[1],1), count=c(1,1,-1))
Longvector và Latvector là véc tơ lấy từ ma trận với Long và Lat cho mỗi điểm. Tập dữ liệu là một định dạng danh sách và cho mỗi điểm tôi có một danh sách các giá trị số.
dataset[[1]]=c(0,0,0,9.7,0,7.5,3.6,2.9,0,0.5,....)
Tôi có thiếu gì đó hoặc tôi nên thử các gói khác không ??
Độ dài của Longvector và Latvector là bao nhiêu? Bạn có thể cung cấp cho họ, có lẽ với một cuộc gọi đến seq() hoặc chỉ cần đổ mã để tạo lại chúng với dput(). – mdsumner
Vui lòng chỉnh sửa câu hỏi để bao gồm thông tin còn thiếu – mdsumner
sẽ đề xuất di chuyển giải pháp ncdf4 đã được chấp nhận vì ncdf hiện đang trở nên lỗi thời - phần lớn phần mềm sử dụng quy ước netcdf4 ngay bây giờ. –