R语言处理潜在蒸散nc数据

数据来源https://www.tpdc.ac.cn/zh-hans/data/8b11da09-1a40-4014-bd3d-2b86e6dccad4/

数据简介:该数据集描述了中国逐月潜在蒸散发的时空分布,覆盖1901年1月至2023年12月,空间分辨率为1km(0.0083333°),单位为0.1mm。基于Peng等(2019)发布的中国逐月均温、最低温和最高温数据,采用Hargreaves公式计算潜在蒸散发(PET),公式为:PET = 0.0023 × S0 × √(MaxT - MinT) × (MeanT + 17.8),其中MaxT、MinT和MeanT分别为月最高、最低和平均温度,S0为理论太阳辐射。数据采用int16类型存储于NetCDF(nc)文件中,支持ArcMAP软件制图及Matlab、R等软件的提取处理,建议使用WGS84坐标系统。

代码处理(处理详情:先把多年的月数据进行累加得到年潜在蒸散的数据)

r 复制代码
library(ncdf4)   # 读 NetCDF:nc_open(), ncvar_get()
library(raster)  # raster 处理:brick(), calc(), writeRaster()


# 处理npp的数据
tmpfile = nc_open("F:\\geodata\\31蒸散发数据\\China_PET_1901_2023_from_CRUv4.08\\pet_2000.nc") 

# 查看nc文件的信息
print(tmpfile) 


time <- ncvar_get(tmpfile, "time") # 获取时间变量
head(time) # 查看时间变量的前几行
print(time) # 查看时间变量


# nc文件的数据存成栅格数据集
tmp = brick("F:\\geodata\\31蒸散发数据\\China_PET_1901_2023_from_CRUv4.08\\pet_2000.nc",varname='etp')# 读取nc文件中的变量'time


# 对栅格数据集进行栅格计算
tmp_mean = calc(tmp, fun = sum, na.rm = TRUE) * 0.1


writeRaster(tmp_mean,'F:\\geodata\\31蒸散发数据\\China_PET_1901_2023_from_CRUv4.08\\pet_2000.tif',overwrite=TRUE)
相关推荐
霸道流氓气质23 分钟前
Java中信号量(Semaphore):从本地到分布式
java·开发语言·分布式
路溪非溪1 小时前
Python语言的执行流程总结
开发语言·python
民乐团扒谱机1 小时前
【超详解】量子克拉美罗下界QCRB:时延估计精度极限推导+MATLAB多场景绘图实战
开发语言·机器学习·matlab·量子力学·qcrb
乐观勇敢坚强的老彭2 小时前
C++ 竞赛常用算法模板速查表
开发语言·c++·算法
离陌在学C#2 小时前
C# 泛型:从基础到高级应用
开发语言·c#
ly76892 小时前
Java 设计模式详解:从原则到 23 种经典模式
java·开发语言·设计模式
SomeB1oody2 小时前
【RustyML入门】2.13. 孤立森林
开发语言·后端·机器学习·rust·教程
萧瑟余晖2 小时前
Java深入解析篇三十之Java日志框架
java·开发语言
Herbert_hwt2 小时前
【C语言基础】常量、选择结构与运算符全解析
c语言·开发语言·算法
AI视觉网奇3 小时前
动作识别 视频理解大模型
开发语言·python·音视频