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


相关文章
MAC使用CodeSign查看已签名的文件的数字签名情况
MAC使用CodeSign查看已签名的文件的数字签名情况
863 0
|
安全 前端开发 Java
SpringSecurity如何放行资源
SpringSecurity如何放行资源
453 2
|
JSON 安全 Java
Java一分钟之-Spring Security:身份验证与授权
【6月更文挑战第7天】本文介绍了Spring Security的常见问题及解决方案,包括配置启动、身份验证、授权、无状态JWT和异常处理。通过`@EnableWebSecurity`启动安全框架,自定义登录页面和登录逻辑,使用`http.authorizeRequests()`设置访问规则。对于JWT,需添加解析器并注册过滤器。此外,处理Spring Security异常,创建自定义的`AccessDeniedHandler`和`AuthenticationEntryPoint`。理解核心概念并按业务需求定制,是确保应用安全的关键。
263 1
|
11月前
|
自然语言处理 语音技术
交大x-lance跨媒体语言智能实验室等联合开源F5-TTS!零样本语音复刻,生成流畅,情感丰富!
上海交大x-lance跨媒体语言智能实验室联合剑桥大学、吉利汽车研究院(宁波)公司开源了一种基于流匹配的扩散变换器(Diffusion Transformer,DiT)的完全非自回归TTS模型-F5-TTS。
|
存储 缓存 物联网
MQTT常见问题之MQTT发送消息过多内存不够处理不过来如何解决
MQTT(Message Queuing Telemetry Transport)是一个轻量级的、基于发布/订阅模式的消息协议,广泛用于物联网(IoT)中设备间的通信。以下是MQTT使用过程中可能遇到的一些常见问题及其答案的汇总:
|
安全 Go
Go语言map并发安全,互斥锁和读写锁谁更优?
Go并发编程中,`sync.Mutex`提供独占访问,适合读写操作均衡或写操作频繁的场景;`sync.RWMutex`允许多个读取者并行,适用于读多写少的情况。明智选择锁可提升程序性能和稳定性。示例展示了如何在操作map时使用这两种锁。
162 0
|
人工智能 搜索推荐 开发工具
移动应用开发趋势与技术前景
随着移动互联网的快速发展,移动应用开发已成为当今科技领域的关键焦点之一。本文探讨了当前移动应用开发的最新趋势和技术前景,涵盖了移动操作系统、开发工具及框架的演变,以及未来可能的发展方向。通过分析市场需求和技术创新,展望了移动应用开发领域的潜力和挑战,为相关技术人员提供了重要的参考和启示。
|
前端开发 安全 Java
springboot集成springdoc-openapi(模拟前端请求)
springboot集成springdoc-openapi(模拟前端请求)
|
小程序
微信小程序实现一个天气预报应用程序
微信小程序实现一个天气预报应用程序
|
机器学习/深度学习 存储 Serverless
【机器学习】利用线性回归预测披萨价格
【机器学习】利用线性回归预测披萨价格
413 0