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!")