python读取nc数据

python读取nc数据

读取nc数据主要是用到netCDF4库。

#最基础的读取
nc_obj = nc.Dataset(filename)
#这里filename自己定义即可

这里已经将nc文件读取进来了,之后我们可以查看其中的各个维度以及数据。

#读取经度纬度值
lat=(nc_obj.variables['lat'][:])
lon=(nc_obj.variables['lon'][:])

这里variables方法即是读取变量的功能,一般nc文件中经度和纬度会命名为‘lon’和‘lat’,不确定的话可以阅读一下相关产品的说明书进行查询。
或者可以直接调用variables.keys方法:

print(nc_obj.variables.keys())

输出结果:
输出结果
这里的变脸分别是经度、纬度、时间和蒸散发量。
那么我们想读取蒸散发数值的话,就是和前面类似的操作:

Data=(nc_obj.variables[str(flag)][:])

看一下读出来的结果的形状:

print(Data.shape)

输出结果
这个产品的记录是以月份为单位,一共是40年的。第二个是纬度,第三位是经度,都是以0.5°为单位。
到这里,数据已经存入数组Data中了,我们可以对它进行后续的操作。

补充一个题外话,如果想要灵活一点,让我们的程序可以每次读取我们选定的文件,而不需要我们每次更改路径,则可以使用win32ui库。

import win32ui
# 0代表另存为对话框,1代表打开文件对话框
dlg = win32ui.CreateFileDialog(1)
 
# 默认目录
dlg.SetOFNInitialDir('D:\Recently\Water_recycle\Data') 
 
# 显示对话框
dlg.DoModal()
 
# 获取用户选择的文件全路径
filename = dlg.GetPathName()

nc_obj = nc.Dataset(filename)

这部分文件读取的内容一开始是在CSDN上找到的,但是后来找不到了,所幸我的程序里还留着,所以就搬运了,如果有朋友找到了之前那个大佬的帖子,麻烦指一下路,我补充一下应用,非常感谢!!

你可能感兴趣的:(python,编程语言,数据分析)