python处理nc(netcdf)数据

netcdf是气候数据常见形式,一般是经纬度网格和时间的三维数据,python有个netCDF4可以读取和处理此类数据

# -*- coding: utf-8 -*-
from netCDF4 import Dataset
#导出sst数据
nc_obj=Dataset('sst.mnmean.nc')
#查看各变量
for i in nc_obj.variables:
    print(i)
#查看各变量信息
for i in nc_obj.variables.keys():
    print(nc_obj.variables[i])
#提取各变量的值
lat=(nc_obj.variables['lat'][:])
lon=(nc_obj.variables['lon'][:])
time=(nc_obj.variables['time'][:])
sst=(nc_obj.variables['sst'][:])

给个导出成分年数据表的例子,文件见:

链接:https://pan.baidu.com/s/1XazuJg8RBhTgSQG_SWlyww 提取码:ibx5 

# -*- coding: utf-8 -*-
from netCDF4 import Dataset
import numpy as np
import os
import pandas as pd
#导出sst数据
nc_obj=Dataset('sst.mnmean.nc')
lat=(nc_obj.variables['lat'][:])
lon=(nc_obj.variables['lon'][:])
print(nc_obj.variables)
time=(nc_obj.variables['time'][:])
sst=(nc_obj.variables['sst'][:])
date_list=[]
for i in range(1854,2020):
    for j in range(1,13):
        date_list.append(str(i)+"_"+str(j))
count=0
for i in time:
    temp_mat=np.mat(sst[count,:,:])
    filename=date_list[count]+'.csv'
    filepath=os.path.join('sstdatas',filename)
    np.savetxt(filepath,temp_mat)
    print("file:%d finished "%(count+1))
    count+=1
print("succeed!")
发布了62 篇原创文章 · 获赞 118 · 访问量 22万+

猜你喜欢

转载自blog.csdn.net/qq_38412868/article/details/101367438