使用 python 从全球陆地数据同化系统 (GLDAS) netcdf4 文件中提取温度?
Extracting temperature from Global Land Data Assimilation System (GLDAS) netcdf4 file using python?
我使用 python 从 netcdf4 文件中提取温度数据 我使用了这些代码,但它 returns 只有空值。
from netCDF4 import Dataset
nc = Dataset("GLDAS_NOAH025_3H.A20170102.0000.021.nc4","r")
for temp in nc.variables['AvgSurfT_inst'] :
print (temp)
输出:
[[[-- -- -- ..., -- -- --]
[-- -- -- ..., -- -- --]
[-- -- -- ..., -- -- --]
...,
[-- -- -- ..., -- -- --]
[-- -- -- ..., -- -- --]
[-- -- -- ..., -- -- --]]]
您可以通过 np.ma.count_masked(data)
计算屏蔽值的数量来轻松检查是否所有/有多少值被屏蔽(缺失)。例如,对于随机 NetCDF 文件:
import numpy as np
import netCDF4 as nc4
f = nc4.Dataset('bomex.ql.0000000.nc')
for v in f.variables:
arr = f.variables[v][:]
print('{0:}: values = {1:}, masked_values = {2:}'.format(v, np.size(arr), np.ma.count_masked(arr)))
这给了我类似的东西:
z: values = 32, masked_values = 0
zh: values = 33, masked_values = 0
u: values = 416, masked_values = 362
v: values = 416, masked_values = 362
w: values = 429, masked_values = 369
我使用 python 从 netcdf4 文件中提取温度数据 我使用了这些代码,但它 returns 只有空值。
from netCDF4 import Dataset
nc = Dataset("GLDAS_NOAH025_3H.A20170102.0000.021.nc4","r")
for temp in nc.variables['AvgSurfT_inst'] :
print (temp)
输出:
[[[-- -- -- ..., -- -- --]
[-- -- -- ..., -- -- --]
[-- -- -- ..., -- -- --]
...,
[-- -- -- ..., -- -- --]
[-- -- -- ..., -- -- --]
[-- -- -- ..., -- -- --]]]
您可以通过 np.ma.count_masked(data)
计算屏蔽值的数量来轻松检查是否所有/有多少值被屏蔽(缺失)。例如,对于随机 NetCDF 文件:
import numpy as np
import netCDF4 as nc4
f = nc4.Dataset('bomex.ql.0000000.nc')
for v in f.variables:
arr = f.variables[v][:]
print('{0:}: values = {1:}, masked_values = {2:}'.format(v, np.size(arr), np.ma.count_masked(arr)))
这给了我类似的东西:
z: values = 32, masked_values = 0
zh: values = 33, masked_values = 0
u: values = 416, masked_values = 362
v: values = 416, masked_values = 362
w: values = 429, masked_values = 369