我正在尝试使用THREDDS数据服务器中的数据绘制最新的HRRR表面温度。
cat = TDSCatalog('https://thredds-test.unidata.ucar.edu/thredds/catalog/'
'grib/NCEP/HRRR/CONUS_2p5km/latest.xml')
dataset = cat.datasets[0]
ncss = dataset.subset()
sfctemp = ncss.query()
sfctemp.variables('Temperature_height_above_ground')
sfctemp.vertical_level(2.0)
sfctemp.add_lonlat().lonlat_box(north=55, south=20, east=281, west=230)
sfctemp.time(now)
sfctemp_data = ncss.get_data(sfctemp)
但是,当我从以下位置获取并打印实际数据值时,效果很好:
sfctemp_vars = units.K * sfctemp_data.variables['Temperature_height_above_ground'][:].squeeze()
它返回:
[[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]] kelvin
不确定我在做什么错。帮助将不胜感激!
答案 0 :(得分:1)
我认为实际上并没有发生任何问题。如果我运行您的代码,则会看到您看到的内容:
[[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]] kelvin
这些只是缺少的值,其中网格在域的边缘具有未定义/缺失的值。如果我运行:
import numpy as np
np.nanmax(sfctemp_vars)
我得到:
308.1873
快速绘图:
import matplotlib.pyplot as plt
plt.imshow(sfctemp_vars)
给了我一些看起来合理的东西:
请注意顶部和底部的白色缺失数据补丁。