将一年中 每小时的数据转换为一天的总数据
import netCDF4 as nc
import numpy as np
import os
import csv
path = r"D:\jixiangshuju\tp"
files = os.listdir(path)
i = 0
for filename in files:
file = path + "\\" + filename
data = nc.Dataset(file)
portion = os.path.splitext(filename)[0] + ".csv"
lon = data.variables['longitude'][:].data # 1440
# 维度
lat = data.variables['latitude'][:].data # 721
time = data.variables['time']
real_time = nc.num2date(time, time.units)
# 时间
time1 = data.variables['time'][:].data # 744
# 温度
pt = data.variables['pt'][:].data # (744,721,11440) 时间 lat lon
# 2017
id = time1 // 24 - 42733
pt = data.variables['pt'][:].data - 273.16
lon = data.variables['longitude'][:].data
print('数据加载完成')
with open(portion, 'a', newline='') as fp:
# 字段名
writer = csv.writer(fp, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
writer.writerow(["ID",'yy', 'mm', 'dd', 'lat', 'lon', 'precip'])
# 输入经纬度的维数
temp = []
for j in range(len(lat)):
print(j)
for k in range(len(lon)):
for i in range(len(time)):
temp.append(pt[i, j, k])
if (len(temp) == 24):
ID = id[i]
temp = np.array(temp)
year = real_time[i].year
month = real_time[i].month
day = real_time[i].day
sumtemp = np.sum(temp)
long = lon[k] if lon[k] <= 180 else -(lon[k] - 180)
writer.writerow([
ID,
year,
month,
day,
lat[j],
long,
sumtemp,
])
temp = []
print('完成1个')
print('完成')