具体细节请参考上篇文章
完整代码
解析一年的数据
from netCDF4 import Dataset
import csv
import string
import netCDF4 as nf
import datetime
import os
path = r"D:\data\2019\\"
files = os.listdir(path)
print(files)
def getDate(time):
arr = nf.num2date(nc.variables['time'][:], 'days since 1982-01-01 00:00:00').data
y = arr[0].year
m = arr[0].month
return "%(year)d-%(month)02d"%{'year':y,'month':m}
for file in files:
# f = open(path+file, "r")
nc = Dataset(path+file)
time = nc.variables['time'][:]
# 纬度 latitude
Y = nc.variables['Y'][:]
# 经度 longitude
X = nc.variables['X'][:]
# 风速
Wind_f_tavg = nc.variables['Wind_f_tavg'][:]
# print(nc.variables.keys())
print(getDate(time))
now_time1 = datetime.datetime.now()
print(now_time1)
with open(fr'{getDate(time)}.csv', 'a', newline='') as fp:
writer = csv.writer(fp, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
#字段名,根据需要可不要
writer.writerow(['time',
'Y',
'X',
'Wind_f_tavg'
])
# 输入经纬度的维数
for i in range(len(time)):
for j in range(len(Y)):
for k in range(len(X)):
if str(Wind_f_tavg[i][j][k]) not in '--':
writer.writerow([getDate(time[i]),
Y[j],
X[k],
Wind_f_tavg[i, j, k]
])
fp.close()
now_time2 = datetime.datetime.now()
print(now_time2)