""" WRF后处理程序 风变量对比 20230130 byp """ import netCDF4 import wrf import os import glob import re import math # 读取数据###############################################################开始 dir_name = "./data/WRF/" dir_output = './output/txt/' list_of_files = glob.glob(dir_name+'*') latest_file = max(list_of_files, key=os.path.getctime) # 最新文件 # print(latest_file) mat = re.search(r"(\d{4}-\d{1,2}-\d{1,2}_\d{1,2})", latest_file) # 正则匹配时间 dir_time_file = 'wrfout_d01_'+latest_file[mat.span()[0]:] dir_time = latest_file[mat.span()[0]:mat.span()[1]].replace('-', '').replace('_', '') data_nc = netCDF4.Dataset(dir_name+dir_time_file) idx = 0 i = 0 u = wrf.getvar(data_nc, 'U10', timeidx=idx) v = wrf.getvar(data_nc, 'V10', timeidx=idx) u_t = u.values[0][i] v_t = v.values[0][i] print(u_t) print(v_t) uv = wrf.getvar(data_nc, 'uvmet10', timeidx=idx) sd = wrf.getvar(data_nc, 'wspd_wdir10', timeidx=idx) sd10 = wrf.getvar(data_nc, 'uvmet10_wspd_wdir', timeidx=idx) u_t = uv.values[0][0][i] v_t = uv.values[1][0][i] print(u_t) print(v_t) # 计算风速 wind_speed = math.sqrt(u_t ** 2 + v_t ** 2) print('计算uv的风速:'+str(wind_speed)) print(uv.values.shape) print(sd.values.shape) print(sd.values[0][0][i]) print(sd.values[1][0][i]) print(sd10.values.shape) print(sd10.values[0][0][i]) print(sd10.values[1][0][i])