我正在使用ncap2生成给定文件(例如:NB_all_var_surface_04750.nc)中给定变量(例如:nsmz)的均值和标准差。
我想将ncdump生成的输出值存储为对象;现在,我必须手动将终端中的每个输出复制到单独的Jupyter Notebook中的numpy数组中。必须有一个更快的方法!
请参阅下面的shell命令;有什么想法吗?
ncap2 -h -O -s 'nsmz_mean=nsmz.avg();' NB_all_var_surface_0*.nc NB_nsmz_surface_mean.nc
ncdump -v nsmz_mean NB_nsmz_surface_mean.nc | sed -e '1,/data:/d' -e '$d'
$ nsmz_mean = 1.473794e-07 ;
ncap2 -s 'nsmz_sdn=(nsmz-nsmz.avg(ocean_time)).rmssdn(ocean_time)' NB_all_var_surface_0*.nc NB_nsmz_surface_sdn.nc
ncdump -v nsmz_sdn NB_nsmz_surface_sdn.nc | sed -e '1,/data:/d' -e '$d'
$ nsmz_sdn = 1.247375e-07 ;
Bash不会执行我上面要问的,但是python会。
import netCDF4
from netCDF4 import Dataset
import numpy as np
test = 'NB_all_var_surface_04750.nc'
ds = Dataset(test)
ds2 = ds.variables['nsmz'][:]
ds2.mean()
# 1.473794e-07