如何将ncdump -v的输出存储为对象?

问题描述 投票:0回答:1

我正在使用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 ;
python bash numpy netcdf netcdf4
1个回答
0
投票

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
© www.soinside.com 2019 - 2024. All rights reserved.