繁体   English   中英

如何用 Nan 替换 .netcdf 文件中的值?

[英]How to replace values in netcdf file with Nan?

我正在使用带有网格化月度温度值的 NASA GISS.netcdf 文件。 根据自述文件“丢失的数据被标记为 9999.f 的值”,我正在尝试 plot 数据但不断得到空白地图。 我认为这是因为这个 9999.f 值超出了我的体重秤。 我如何用 Nan 替换它? 我试过了:

from netCDF4 import Dataset
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap

data2 = Dataset(r'GriddedAir250.nc')

lats=data2.variables['lat'][:]
lons=data2.variables['lon'][:]
time=data2.variables['time'][:]
air=data2.variables['air'][:]

air=air.astype('float')
air[air==9999]=np.nan

但看起来这给了我一个 boolean 值的数组: 在此处输入图像描述

netCDF4创建屏蔽 arrays ,并自动屏蔽值 9999.0。 在您的代码中,这意味着air = data2.variables['air'][:]的结果是一个屏蔽数组。 所以我怀疑问题是您尝试使用的绘图代码无法处理屏蔽的 arrays。如果您认为绘图代码可以处理nan ,您可以尝试

air = air.filled(fill_value=np.nan)

这会将air转换为常规 NumPy 数组,并将屏蔽值(即 .nc 文件中最初为 9999.0 的值)转换为nan

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM