- 积分
- 22715
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2011-7-23
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 平流层的萝卜 于 2020-7-16 19:37 编辑
之前用EC的再分析资料时,经常会产生这样的疑问:nc文件的某一个时次,对应的是哪年哪月哪日哪时呢?用grads的 q ctlinfo 命令,当然立刻就能得到答案。但怎么用Python得到每一个时次对应的具体时间呢?自己推算肯定太笨了。
经过一通研究发现,用NetCDF4模块的num2date方法,就可以得到每一个时次对应的具体时间t,但t的type是datetime,再简单粗暴地用str(t)即可将其转换为字符串,即可进行图上时间标注一类的操作。
示例代码如下:
import numpy as np
from mpl_toolkits.basemap import Basemap
import netCDF4 as nc
import matplotlib.pyplot as plt
ncfile=nc.Dataset(r'850hPa_uv_2020june_jul.nc')
times,time_unit=ncfile.variables['time'][:],ncfile.variables['time'].units
result=nc.num2date(times[:3],units=time_unit)
print('将nc文件的前三个时次都转换成时间(datetime格式):',result)
result_in_string_format=[str(i) for i in result]
print('再将上一步结果再转换成字符串:',result_in_string_format)
结果如下:
- 将nc文件的前三个时次都转换成时间(datetime格式): [datetime.datetime(2020, 6, 1, 0, 0) datetime.datetime(2020, 6, 1, 6, 0)
- datetime.datetime(2020, 6, 1, 12, 0)]
- 再将上一步结果再转换成字符串: ['2020-06-01 00:00:00', '2020-06-01 06:00:00', '2020-06-01 12:00:00']
复制代码
|
|