根据用户输入的参数自动读取对应时间内的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中就是我们所需要的数据文件名,下面进行循环读取即可。


相关文章
|
PHP Windows 编解码
windows命令行方式下打印和设置PATH变量
点击开始菜单,运行=》cmd打印当前变量:echo %PATH%结果:C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;d:\PROGRA~1\ssh;D:\Program Files\tortoisesvn\bin;D:\Program...
2350 0
|
2月前
输出当前文件执行代码
【10月更文挑战第11天】输出当前文件执行代码。
27 4
|
7月前
|
程序员
第四十二章 使用^%SYS.MONLBL检查例程性能 - 逐行分隔输出报告
第四十二章 使用^%SYS.MONLBL检查例程性能 - 逐行分隔输出报告
39 0
|
5月前
|
存储 监控 JavaScript
函数计算产品使用问题之如何保持环境变量在每次发布后不被清空
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
6月前
去除程序名称 去除程序属性详细信息中的程序名称 创建时间等信息
去除程序名称 去除程序属性详细信息中的程序名称 创建时间等信息
39 0
|
7月前
|
Linux Shell
Linux脚本获取输入参数判断文件还是文件路径
Linux脚本获取输入参数判断文件还是文件路径
39 4
|
Shell 开发工具
写一个脚本/root/bin/argsnum.sh,接受一个文件路径作 为参数;如果参数个数小于1,则提示用户“至少应该给一个 参数”,并立即退出;如果参数个数不小于1,则显示第一个 参数所指向的文件中的空白行数
写一个脚本/root/bin/argsnum.sh,接受一个文件路径作 为参数;如果参数个数小于1,则提示用户“至少应该给一个 参数”,并立即退出;如果参数个数不小于1,则显示第一个 参数所指向的文件中的空白行数
79 1
|
数据库
mp查询出来时间自动去掉秒
mp查询出来时间自动去掉秒
84 0
element close事件关闭表单,数据替换掉原始列表的数据bug解决
element close事件关闭表单,数据替换掉原始列表的数据bug解决
78 0
jmeter函数助手对话框 随机数、字符和时间戳,判断变量是否存在
jmeter函数助手对话框 随机数、字符和时间戳,判断变量是否存在