lat,long插值的NetCDF4[[]]值

2024-10-03 04:35:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我对netCDF4对象的一些请求返回一个[[--]]值表示无效。某些位置的实际数值是[[someNumerical]]。 我怎么才能抓住这个?它没有记录在http://matplotlib.org/basemap/api/basemap_api.htmlinterp文档中?在

我得到它的原因是,我的lat,long超出了合理插值的范围,但是我根本不明白如何捕捉这个返回值。在

我要这样做:

value = interp(theData, longitudes, latitudes, np.asarray( [[ convertLongitude(longitude)]] ), np.asarray( [[ convertLatitude(latitude) ]] ), checkbounds=True, masked=True, order=1)

嗯,解决办法当然可以

^{pr2}$

Tags: 对象文档orgapitruehttpmatplotlibnp
1条回答
网友
1楼 · 发布于 2024-10-03 04:35:45

您的问题不清楚您认为问题出在哪里-在通过NetCDF4获取的值或interp返回的值中。在

但是,在查看interp的文档时,我发现:

masked
If True, points outside the range of xin and yin are masked (in a masked array). If masked is set to a number, then points outside the range of xin and yin will be set to that number. Default False.

http://matplotlib.org/basemap/api/basemap_api.html#mpl_toolkits.basemap.interp

[ ]值在masked array的上下文中是有意义的。在

在屏蔽数组中,屏蔽值(通常是无效值)用显示:

In [380]: x=np.ma.masked_greater(np.arange(4), 2)
In [381]: x
Out[381]: 
masked_array(data = [0 1 2  ],
             mask = [False False False  True],
       fill_value = 999999)

如果要使用masked=True参数,则需要阅读掩码数组。在

您可以使用fillvalue替换被屏蔽的元素

^{pr2}$

或者移除它们

In [389]: x.compressed()
Out[389]: array([0, 1, 2])

您看到的[[ ]]表明{}可能是一个2d数组。如果是这样,compressed可能没有用。在

但关键是values数组实际上没有值。这就是所显示的,作为填充物。在

相关问题 更多 >