【问题标题】:netcdf (.nc) file only has -999 values?netcdf (.nc) 文件只有 -999 值?
【发布时间】:2021-07-29 16:03:15
【问题描述】:

我正在尝试分析来自 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 中加载数据是否错误是我下载的数据有问题吗? latitudelongitude 变量并没有给我这个问题

【问题讨论】:

    标签: python netcdf netcdf4


    【解决方案1】:
    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,         nan,         nan,         nan,
                   nan,         nan,         nan,         nan,         nan,
                   nan,         nan,         nan,         nan,         nan,
                   nan,         nan,         nan,         nan,         nan,
                   nan,         nan,         nan,         nan,         nan,
                   nan,         nan,         nan,         nan,         nan,
                   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,         nan,         nan,         nan,
                   nan,         nan,         nan,         nan,         nan,
                   nan,         nan,         nan,         nan,         nan,
                   nan,         nan,         nan,         nan,         nan,
                   nan,         nan,         nan,         nan,         nan,
                   nan,         nan,         nan,         nan,         nan,
                   nan,         nan,         nan,         nan,         nan,
                   nan,         nan,         nan,         nan,         nan,
                   nan,         nan,         nan,         nan,         nan,
                   nan,         nan,         nan,         nan,         nan,
                   nan,         nan,         nan,         nan,         nan,
                   nan,         nan,         nan,         nan,         nan,
                   nan,         nan,         nan,         nan,         nan,
                   nan,         nan,         nan,         nan,         nan,
                   nan,         nan,         nan,         nan,         nan,
                   nan,         nan,         nan,         nan,         nan,
                   nan,         nan,         nan,         nan,         nan],
          dtype=float32)
    

    【讨论】:

      猜你喜欢
      • 2021-06-21
      • 2019-02-02
      • 1970-01-01
      • 2021-05-14
      • 2021-05-04
      • 2022-07-29
      • 2018-08-09
      • 1970-01-01
      • 2023-03-26
      相关资源
      最近更新 更多