[英]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
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.