【wrf-python】批量读取wrfout输出数据,并提取其中变量另存为csv文件

#导入库
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()

  • 11
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值