如何解决netcdf (.nc) 文件只有 -999 值?
我正在尝试分析来自 https://imdpune.gov.in/Clim_Pred_LRF_New/Grided_Data_Download.html 的降雨数据,特别是“网格降雨 (0.25 x 0.25) NetCDF”文件。
我使用 netCDF4
加载数据,但我得到了这个奇怪的结果:
from netCDF4 import Dataset
import numpy as np
path = '2013.nc'
f = Dataset(path,'r')
rain = np.array(f.variables['RAINFALL'][:,:,:])
print(rain[0][0])
输出:
[-999. -999. -999. -999. -999. -999. -999. -999. -999. -999. -999. -999.
-999. -999. -999. -999. -999. -999. -999. -999. -999. -999. -999. -999.
-999. -999. -999. -999. -999. -999. -999. -999. -999. -999. -999. -999.
-999. -999. -999. -999. -999. -999. -999. -999. -999. -999. -999. -999.
-999. -999. -999. -999. -999. -999. -999. -999. -999. -999. -999. -999.
-999. -999. -999. -999. -999. -999. -999. -999. -999. -999. -999. -999.
-999. -999. -999. -999. -999. -999. -999. -999. -999. -999. -999. -999.
-999. -999. -999. -999. -999. -999. -999. -999. -999. -999. -999. -999.
-999. -999. -999. -999. -999. -999. -999. -999. -999. -999. -999. -999.
-999. -999. -999. -999. -999. -999. -999. -999. -999. -999. -999. -999.
-999. -999. -999. -999. -999. -999. -999. -999. -999. -999. -999. -999.
-999. -999. -999.]
注意:这个特定文件没有问题,因为我对每年的数据都得到了相同的结果。你可以自己试试。
我在python中加载数据是否错误,我下载的数据有问题吗?
latitude
和 longitude
变量虽然没有给我这个问题
解决方法
from pathlib import Path
import numpy as np
import matplotlib.pyplot as plt
# file import
path = Path('../../Downloads/')
file = 'Clim_Pred_LRF_New_RF25_IMD0p252013.nc'
f = Dataset(path / file,'r')
# select variable "Rainfall"
rain = np.array(f.variables['RAINFALL'][:,:,:])
# assign NaN value
rain[rain==-999.] = np.nan
# plot dataset for selected date (2013-01-18)
plt.pcolormesh(rain[17])
plt.colorbar()
数据看起来不错。
但是看看雨的形状:
print(rain.shape)
(365,129,135)
# --> (days,latitude,longitude).
使用 rain[0][0]
,您将选择第一个时间步长 (Jan-01) 和第一个纬度 (6.5),这将返回一个具有 NaN 值的一维数组,因为所有像素都在印度之外。选择带有 0 的第二和第三维将始终以 -999 独占方式返回数组。例如,您可以尝试rain[17][100]
!
print(rain[17][100]
array([ nan,nan,1.2962954,0.99620295,2.705826,9.772656,11.187045,0.,3.0871496,5.298688,18.108587,34.280876,35.034836,41.41929,38.952507,63.49905,92.398125,92.92495,80.57031,63.660515,45.413662,nan],dtype=float32)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。