nc数据存储、读取、基本运算

import netCDF4 as nc
import numpy as np
import matplotlib.pyplot as plt

nc数据存储

#创建输入数据
x = np.linspace(70,100,20) 
y = np.linspace(10,30,20)
np_data1 = np.zeros((10,20,20))
np_data2 = np.ones((10,20,20))

np_data3 = np.arange(4000).reshape((10,20,20))
rng = np.random.default_rng()
rng.shuffle(np_data3, axis=2)
#创建nc数据
Data = nc.Dataset('nc_test.nc', 'w', format='NETCDF4')
Data.createDimension('lon',20) #创建经度维数
Data.createDimension('lat',20) #创建纬度维数
Data.createDimension('time',10) #创建时间维数
#创建属性,并存入属性值
lon = Data.createVariable('lon',np.float32,'lon') #创建经度
lon.setncattr_string('name','longitude')  #添加属性注释
lon[:]= x

lat = Data.createVariable('lat',np.float32,'lat') #创建纬度
lat.setncattr_string('name','lat')  #添加属性注释
lat[:]= y

var1 = Data.createVariable('var1',np.float32,('time','lat','lon')) #创建数据1 三维为时间 纬度 经度
var1[:] = np_data1 

var2 = Data.createVariable('var2',np.float32,('time','lat','lon')) #创建数据2 三维为时间 纬度 经度
var2[:] = np_data2 

var3 = Data.createVariable('var3',np.float32,('time','lat','lon')) #创建数据2 三维为时间 纬度 经度
var3[:] = np_data3
#关闭
Data.close()

读取


读取

data = nc.Dataset('nc_test.nc')

#获取属性
data.variables.keys()
data['var1'].shape

在这里插入图片描述
在这里插入图片描述

plt.imshow(data['var3'][0])

在这里插入图片描述

基本运算


df = np.asarray(data['var3'])

np.mean(df,axis=0) #按时间轴计算均值
np.mean(df[0]) #计算一单位时间均值
np.std(df,axis=0) #按时间轴计算标准差
np.sum(df,axis=0) #计算每个格点

#当数据中含有nan值
np.nanmean(df,axis=0)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值