#导入库
import os
from pathlib import Path
import xarray as xr
import netCDF4 as nc
import numpy as np
import pandas as pd
from wrf import getvar, xy_to_ll, ll_to_xy, interplevel, vertcross, ALL_TIMES
#netcdf读取wrfout文件
os.chdir("/raw")
path=Path("/raw")
filelist=os.listdir(path)
files=[os.path.join(path,x) for x in filelist if x.startswith("wrfout_d01")]
wrflist=[nc.Dataset(d) for d in files]
#读取wrfout变量rh2
rh2=getvar(wrflist,"rh2", timeidx=ALL_TIMES, method="cat")
print(rh2)
for i in wrflist[0].variables.keys():
print(i)
print("----------------------------------")
print(wrflist[0].variables["XLONG"])
print(wrflist[0].variables["XLAT"])
print(wrflist[0].variables["XTIME"])
print(wrflist[0].variables["T2"])
print(wrflist[0].variables["HFX_FORCE"])
print(wrflist[0].variables["LH_FORCE"])
print(wrflist[0].variables["HFX_FORCE"])
print(wrflist[0].variables["T"])
##写入变量的三种方式
# 01以写入模式打开txt文本
txt_file=open("variable.txt","w")
for i in wrflist[0].variables:
txt_file.write(i+":"+str(wrflist[0].variables[i][:])+"\n")
txt_file.close()
#02以写入模式打开txt文本
txt_file=open("variable1.txt","w")
for var in wrflist[0].variables:
var_value=wrflist[0].variables[var][:]
txt_file.write(f"{var}:{var_value}\n")
txt_file.close()
#03以写入模式打开txt文本
var=wrflist[0].variables.keys()
txt_file=open("variable3.txt","w")
for var in wrflist[0].variables:
var_value=wrflist[0].variables[var][:]
txt_file.write("变量名:"+var+"\n")
txt_file.write("数据:\n")
for j in range(var_value.shape[0]):
txt_file.write(str(var_value[j])+"\n")
txt_file.write("\n")
txt_file.close()
【wrf-python】批量读取wrfout输出数据,并提取其中变量另存为csv文件
最新推荐文章于 2024-06-04 15:20:49 发布