如何得到从多个netcdf文件中提取的数组的平均值,以datetime,hour作为循环中的增量

2024-09-28 23:23:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在研究以netcdf为文件格式的雷达数据文件,文件的结构是年内目录为月目录,日内目录为日目录,日内目录为扫描时间增量不一致的文件。我想得到每小时平均反射率,正在使用glob扫描目录,列出文件,并用水平反射率的第二次提升体积扫描对其进行过滤。 下面是我正在编写的代码:

import datetime as dt
import glob
import netCDF4 as nc
import numpy as np

startdate = dt.datetime(2015, 01, 01, 00, 00, 00)
enddate = dt.datetime(2015, 01, 02, 00, 00, 00)
interval = dt.timedelta(hours=1)

ctr = 0
sub_hour_ave = np.zeros((360,240))
while startdate != enddate:
    for i in range(24):

        denominator = 0

        hourly_files = glob.glob('C:\\Users\\User\\Documents\\sample\\Subic\\'+str(startdate.year)+'\\'+\
                                 str(startdate.month).zfill(2)+'\\'+str(startdate.day).zfill(2)+'\\SUB-'+str(startdate.year)+''\
                                 +str(startdate.month).zfill(2)+''+str(startdate.day).zfill(2)+ "-" + str(i).zfill(2) + '*-02-ZH.nc')

        for files in hourly_files:
            sub_nc = nc.Dataset(files)
            sub_data = np.array(sub_nc.variables['Filtered_Intensity(Horizontal)'])

            sub_data[sub_data = -99900] = np.isnan()
            sub_data += sub_data
            denominator += 1

            sub_hour_ave = sub_data/denominator

        startdate += interval

Tags: 文件import目录datadatetimeasnpdt