- 积分
- 65
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2018-10-24
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 黄45 于 2023-10-23 21:53 编辑
请教一下,我在WRF运行时采取了10天一次输出的方式,输出了3月1日至10月1日的数据共三年的nc数据,最后一个输出文件时间尺度只有3天,不满足十天,这种情况下如何将wrf输出数据按照月平均来进行数据处理,或者如何按月将变量提取出来?请各位大神多多指教。采用python的方法总是报错,请问是否能帮我指出一些问题并改正。
rawpath = r"I:\0hsyPaper202406\4data\1wrfoutdata\wtest1\raw"
filepath=Path(rawpath)
#print(filepath) #I:\0hsyPaper202406\4data\1wrfoutdata\wtest1\raw
filelist = list(filepath.glob('*.nc'))
#print(filelist) #WindowsPath('I:/0hsyPaper202406/4data/1wrfoutdata/wtest1/raw/wrfout_d01_2020-03-01_00_00_00.nc')
# -------------1. 读取其中一个文件的经纬度数据,制作经纬度网格【中国西北区域(70-110E,30-50N)】-------------------------
f1 = xr.open_dataset(filelist[1])
#print(f1.variables)
print(f1.attrs)
#print(f1)
# 提取经纬度
lat = f1['XLAT'].data[1]
lon = f1['XLONG'].data[1]
print(lat.shape)
#print(lon>=110)
#print(lat.shape) #(10, 132, 238)
#print(lat.ndim) #3
#print(lon)
#print(np.where(lon >= 80))
#--------------------------2.切割输出图形范围----------------------
lon1 = lon[:,100:110]
#print(lon1)
lat1 = lat[30:40, :]
#print(lat1)
X, Y = np.meshgrid(lon1, lat1)
print(X)
print(Y)
# ----------3.for循环读取文件+数据处理------------------
# for循环
tem_all = []
for file in filelist:
with xr.open_dataset(file) as f:
tem = f['T2CLM'].data
print(tem.shape)
tem_region = tem[:, 30:40, 100:110]
#print(tem_mon)
tem_all.append(tem_region)
print(len(tem_all))
# 1:12个月的温度:tem_all;
tem_year_mean = np.mean(tem_all, axis=0)
print(tem_year_mean.shape)
# 2:春季3-4-5
tem_all = np.array(tem_all)
tem_spr = (tem_all[0,:,:]+tem_all[1,:,:]+tem_all[2,:,:])/2
# 3:sum季6-7-8
#tem_sum = (tem_all[3,:,:]+tem_all[4,:,:]+tem_all[5,:,:])/3
# 4:aut季9
#tem_aut = tem_all[9,:,:]
print(tem_all.shape)
|
|