前言
刚拿到Rdata格式的气象数据,第一次处理有点懵,特记录一下步骤。
步骤
读取Rdata气象数据;
提取指定年份数据;
导出成tif格式。
library(raster)
library(rgdal)
output_folder <- "E://CMA_P_T//P_tif" # 设置输出文件夹
shp <- readOGR('E://CMA_P_T//test.shp') # 读取shp文件
data_folder <- 'E://CMA_P_T//P_China_1dy_0.5deg_1961_2020.RData' # 读取Rdata文件
data <- load(data_folder)
start_index <- which(dimnames(P)[[3]] == "20000101") # 开始和结束时间
end_index <- which(dimnames(P)[[3]] == "20201231")
P_new <- P[,,start_index:end_index]
dates <- dimnames(P_new)[[3]] # 获取日期列表
total <- length(dates)
# 对每个日期进行循环
for (i in seq_along(dates)) {
data <- P_new[,,dates[i]]
r <- raster(data) # 创建一个RasterLayer对象
crs(r) <- "+proj=longlat +datum=WGS84" # 设置RasterLayer的CRS为WGS1984
extent(r) <- c(72, 136, 18, 54) # 设置地理范围
r_transformed <- projectRaster(r,
crs = "+proj=utm +zone=44 +datum=WGS84") # 重投影
r_clipped <- mask(r_transformed, shp) # 根据shp文件裁剪RasterLayer
filename <- file.path(output_folder, paste0("P_", dates[i], ".tif"))
writeRaster(r_clipped, filename = filename, format = "GTiff") # 导出为tif格式
cat("\r已完成", i, "/", total) # 进度条
}
cat("\n全部完成!\n")
总结
使用R语言对.Rdata格式的气象数据进行读取、选择日期、投影、裁剪等操作,最后导出为tif文件。