丹东做网站的,WordPress固定连接html,app网站有哪些,国际新闻最新消息今天新闻大解析nc文件#xff0c;并保存为csv文件 写在最前面解析nc文件#xff08;代码汇总放最后面#xff09;读取nc文件获取气象文件中所有变量解析时间解析部分代码汇总 写入csv文件 写在最前面
愿称之为#xff1a;支持私人订制、非常完美的版本 参考#xff1a; 解析部分参… 解析nc文件并保存为csv文件 写在最前面解析nc文件代码汇总放最后面读取nc文件获取气象文件中所有变量解析时间解析部分代码汇总 写入csv文件 写在最前面
愿称之为支持私人订制、非常完美的版本 参考 解析部分参考 https://blog.csdn.net/qq_40105563/article/details/119871620 时间换算参考 https://blog.csdn.net/weixin_51015047/article/details/122571396 {不规则时间} https://blog.csdn.net/weixin_43646592/article/details/113427937 写入csv文件参考 https://blog.csdn.net/Cqh__/article/details/109750908
解析nc文件代码汇总放最后面
方便后续代码调整
读取nc文件
不清楚原因xarray库读取有问题只能用netCDF4库
获取气象文件中所有变量 解析时间 生成的real_time是一个numpy数组数组中嵌套的是datetime对象 从1800年开始的网上部分代码是从1900年开始的 将数据转化为字符串形式 注意由于这个数据都是每个月1日所以只用保存年/月格式的数据即可 如果需要保存年/月/日格式的数据代码可改成
data0 str(real_time[i].year)/str(real_time[i].month)str(real_time[i].day)年月日时分秒以此类推
解析部分代码汇总
import netCDF4
from netCDF4 import Dataset
dir rsst.mnmean.nc # 替换为自己的nc文件
nc Dataset(dir)# 获取气象文件中所有变量
varsnc.variables.keys()#取出各variable的数据看看,数据格式为numpy数组
for var in vars:#读取每个变量的值var_datanc.variables[var][:].dataprint(var,var_data.shape)time nc.variables[time] # 读取时间
real_time netCDF4.num2date(time,time.units)
print(real_time)#查看一下time的属性
nc.variables[time]time nc.variables[time] # 读取时间
real_time netCDF4.num2date(time,time.units)
print(real_time)print(real_time[0].year,real_time[0].month)
print(str(real_time[0].year)/str(real_time[0].month))data []
for i in range(len(real_time)):data0 str(real_time[i].year)/str(real_time[i].month)data.append(data0)print(data)写入csv文件
from netCDF4 import Dataset
import csvnc Dataset(sst.mnmean.nc)
print(nc.variables.keys())lat nc.variables[lat][:]
lon nc.variables[lon][:]
sst nc.variables[sst][:]time nc.variables[time] # 读取时间
# 将时间转化格式cftime.DatetimeGregorian(1854, 1, 1, 0, 0, 0, 0, has_year_zeroFalse)
real_time netCDF4.num2date(time,time.units)
print(real_time)
# 将时间转化格式[1854/1, 1854/2, 1854/3, 1854/4, 1854/5, 1854/6, 1854/7]
data []
for i in range(len(real_time)):data0 str(real_time[i].year)/str(real_time[i].month)data.append(data0)
print(data)# def getDate(num):
# y 1801 num/12
# m 1 num % 12
# return %(year)d-%(month)02d%{year:y,month:m}with open(New_nc v2.0版本.csv, a, newline) as fp:writer csv.writer(fp, delimiter,, quotechar, quotingcsv.QUOTE_MINIMAL)writer.writerow([time, lat, lon, sst])# 输入经纬度的维数for i in range(len(data)):for j in range(len(lat)):for k in range(len(lon)):if str(sst[i][j][k]) not in --:writer.writerow([data[i], lat[j], lon[k], sst[ i, j, k]])完结✿✿ヽ(°▽°)ノ✿