基于R语言将NCDF转为栅格的方法及年度均值计算疑问
问题描述
我正在使用哥白尼(Copernicus)的环境数据层,这些数据为NCDF格式,需要转为栅格格式以便在QGIS中处理,目前使用的R脚本如下:
## Output: a GeoTIFF file file.tiff <- 'currents_2021.tiff' ## Import netCDF currents_2021 <- raster(file.nc) ## Save to disk as GeoTIFF writeRaster(currents_2021, filename = file.tiff, format = 'GTiff', overwrite = T) ## For multiple files, could use a for loop ## Input directory dir.nc <- '~/ENSAT/Mobilité/Stage 2A/Archipelagos/Seabirds project/Environmental variables/Currents/2021' files.nc <- list.files(dir.nc, full.names = T, recursive = T) ## Output directory dir.output <- '~/ENSAT/Mobilité/Stage 2A/Archipelagos/Seabirds project/Environmental variables/SST/requested_files'
该脚本可正常运行,但我的数据为全年每日采集的时序数据,每个经纬度对应365个(理论值)变量值。我不清楚raster函数会如何处理这些值、选取哪个值作为栅格单元值,我需要得到年度均值,即每个栅格单元对应所有值的平均值,不确定当前脚本是否会自动完成此计算。
解答
1. 当前脚本的行为说明
raster()函数读取带时间维度的NCDF文件时,默认只会提取第一个时间切片(即单日数据),不会自动计算年度均值。你当前输出的currents_2021.tiff只是全年中某一天的海流数据,不是你需要的年度平均值。
2. 计算年度均值的正确方法
根据你的数据存储方式(单文件含全年时序/多单日文件),分两种处理方案:
方案一:单NCDF文件包含全年365个时间切片
使用brick()或stack()读取完整的时序数据集,再计算栅格单元的时间维度均值:
# 读取完整时序数据集 currents_2021_full <- brick(file.nc) # 计算年度均值,na.rm=TRUE忽略缺失值 currents_2021_mean <- mean(currents_2021_full, na.rm = TRUE) # 输出为GeoTIFF writeRaster(currents_2021_mean, filename = 'currents_2021_mean.tiff', format = 'GTiff', overwrite = TRUE)
方案二:多个单日NCDF文件(对应全年每日数据)
直接批量读取所有文件并计算均值:
# 输入输出路径 dir.nc <- '~/ENSAT/Mobilité/Stage 2A/Archipelagos/Seabirds project/Environmental variables/Currents/2021' dir.output <- '~/ENSAT/Mobilité/Stage 2A/Archipelagos/Seabirds project/Environmental variables/SST/requested_files' # 批量读取所有NCDF文件 currents_2021_stack <- stack(list.files(dir.nc, full.names = TRUE, recursive = TRUE)) # 计算年度均值 currents_2021_mean <- mean(currents_2021_stack, na.rm = TRUE) # 输出到指定目录 writeRaster(currents_2021_mean, filename = file.path(dir.output, 'currents_2021_mean.tiff'), format = 'GTiff', overwrite = TRUE)
3. 关键说明
brick()和stack()都能读取多图层栅格数据,区别是brick()更适合处理大型连续数据集(如单NCDF时序文件),内存效率更高。mean()函数设置na.rm=TRUE可忽略缺失值,适合处理可能存在数据缺口的逐日观测数据。
内容的提问来源于stack exchange,提问作者Alice B
相关产品推荐
相关产品推荐

