根据用户输入的参数自动读取对应时间内的wrf模式输出数据

简介: 根据用户输入的参数自动读取对应时间内的wrf模式输出数据

前言



基于一个需求,希望根据用户输入一个起报时间、一个预报时间、一个时间间隔,读取对应的wrf模式数据进行绘图。举个例子如下:


起报时间为:2022071000
预报时常为:24h
时间间隔为:3h一次

实现函数:datetime.datetime


主要实现代码如下所示:

import sys
import datetime
date = sys.argv[1]
date = str(date)
frst = sys.argv[2]
step = sys.argv[3]
path = r'/Users/WRF/outdata/'+ date #只能是已经存在的文件目录且有数据才可以进行读取
start = datetime.datetime.strptime(date,'%Y%m%d%H').strftime("%Y-%m-%d_%H:%M:%S")
end = (datetime.datetime.strptime(date,'%Y%m%d%H')+datetime.timedelta(hours=int(frst))).strftime("%Y-%m-%d_%H:%M:%S")
intp = (datetime.datetime.strptime(date,'%Y%m%d%H')+datetime.timedelta(hours=int(step))).strftime("%Y-%m-%d_%H:%M:%S")
fstart = path+'/wrfout_d01_'+start+'*'
fintp  = path+'/wrfout_d01_'+intp+'*'
fend   = path+'/wrfout_d01_'+end+'*'
file = path+'/*'
filestart = glob.glob(fstart)
fileintp  = glob.glob(fintp)
fileend   = glob.glob(fend)
filelist  = glob.glob(file)
filelist.sort()   
rstart = np.array(np.where(np.array(filelist)==filestart))[0][0]
rintp = np.array(np.where(np.array(filelist)==fileintp))[0][0]
rend   = np.array(np.where(np.array(filelist)==fileend))[0][0]
fn   = filelist[rstart:rend:rintp]


最终,这个fn中就是我们所需要的数据文件名,下面进行循环读取即可。


相关文章
|
5月前
时间相关转换-验证
时间相关转换-验证
26 0
|
6月前
|
消息中间件 架构师 数据处理
处理数据时点按钮,数据完数据时会自动执行的问题
处理数据时点按钮,数据完数据时会自动执行的问题
|
10月前
element close事件关闭表单,数据替换掉原始列表的数据bug解决
element close事件关闭表单,数据替换掉原始列表的数据bug解决
40 0
|
11月前
jmeter函数助手对话框 随机数、字符和时间戳,判断变量是否存在
jmeter函数助手对话框 随机数、字符和时间戳,判断变量是否存在
|
测试技术
loadrunner 脚本开发-参数化之将内容保存为参数、参数数组及参数值获取Part 2
loadrunner 脚本开发-参数化之将内容保存为参数、参数数组及参数值获取Part 2
85 0
|
测试技术
loadrunner 脚本开发-参数化之将内容保存为参数、参数数组及参数值获取
loadrunner 脚本开发-参数化之将内容保存为参数、参数数组及参数值获取
87 0
|
PyTorch 算法框架/工具 Python
jupyter 输出向量自动省略了中间的值,如何查看完整的向量值
Jupyter 默认情况下会根据向量的长度来自动省略中间的值,以便在输出时能够更好地适应屏幕大小。如果想要查看完整的向量值,可以通过以下两种方式实现: 1. 使用 print() 函数显示完整的向量内容。这种方法适用于任何大小的向量,但是需要显式调用 print() 函数来输出向量。Jupyter 默认情况下会根据张量的长度来自动省略中间的值,以便在输出时能够更好地适应屏幕大小。如果想要查看完整的张量内容,可以通过以下两种方式实现: 1. 使用 print() 函数显示完整的张量内容。这种方法适用于任何大小的张量,但是需要显式调用 print() 函数来输出张量。
896 0
【WRF如何在输出的wrfoutput文件中设置添加/删除变量】
【WRF如何在输出的wrfoutput文件中设置添加/删除变量】
|
算法
改错题:用户从键盘任意输入一个数字表示月份值n,程序显示该月份对应的英文表示,若n不在1~12之间,则输出“Illegal month”。 注意: (1)请将修改正确后的完整源程序拷贝粘贴到答题区内。
改错题:用户从键盘任意输入一个数字表示月份值n,程序显示该月份对应的英文表示,若n不在1~12之间,则输出“Illegal month”。 注意: (1)请将修改正确后的完整源程序拷贝粘贴到答题区内。
258 0