WRF后处理 | 定点站位近地面信息提取

焦点注册
栏目分类
你的位置:焦点注册 > 关于焦点注册 > WRF后处理 | 定点站位近地面信息提取
WRF后处理 | 定点站位近地面信息提取
发布日期:2024-10-14 09:41    点击次数:192

功能:从WRF输出文件中提出目标经纬度的2m温度、2m湿度以及10m风速信息。

# -*- coding: utf-8 -*-

"""

@author: Daimu

"""

from netCDF4 import Dataset

import numpy as np

from wrf import getvar,interpz3d,destagger,to_np, ALL_TIMES

from scipy.interpolate import griddata

import pandas as pd

from tqdm import tqdm

# 打开NetCDF文件

file_path = r'E:\BaiduSyncdisk\wrfout_d03_2022-05-01_00_00_00'

ncfile = Dataset(file_path, 'r')

# 寻找目标点

lon_m=123.465538

lat_m=41.72472

# 经纬度

lon = np.array(ncfile['XLONG'])[0,:,:]

lat = np.array(ncfile['XLAT'])[0,:,:]

time = np.array(ncfile['Times'])

merged_strings = [''.join(row.astype(str)) for row in time]

time = np.array(merged_strings)

# 湿度 风速

rh = to_np(getvar(ncfile, "rh2",timeidx=ALL_TIMES))

tc = to_np(getvar(ncfile, "T2",timeidx=ALL_TIMES))

# 风速

wspd = getvar(ncfile, "wspd_wdir10", units="m/s",timeidx=ALL_TIMES)[0,:,:,:]

result=pd.DataFrame(columns=['时间','2m温度','2m湿度','10m风速','26m压强'])

for i in tqdm(np.arange(np.size(rh,0))):

rh_t=rh[i,:]

tc_t=tc[i,:]

wspd_t=to_np(wspd[i,:])

rh_m = griddata((lon.flatten(), lat.flatten()), rh_t.flatten(), (lon_m, lat_m), method='linear')

tc_m = griddata((lon.flatten(), lat.flatten()), tc_t.flatten(), (lon_m, lat_m), method='linear')

wspd_m = griddata((lon.flatten(), lat.flatten()), wspd_t.flatten(), (lon_m, lat_m), method='linear')

result.at[i,'时间']=time[i]

result.at[i,'2m温度']=tc_m-273.15

result.at[i,'2m湿度']=rh_m

result.at[i,'10m风速']=wspd_m

result.to_csv(r'E:\02205.csv',encoding='gbk')

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报。

上一篇:如何设置关闭自动启动软件
下一篇:没有了

Powered by 焦点注册 @2013-2022 RSS地图 HTML地图