Python 打印已使用griddata进行网格化的遮罩阵列
我有一个卫星数据的2D数组,两个对应的2D数组给出每个像素的纬度和经度 数据数组是一个屏蔽数组 当我使用pcolormesh绘制它时,它如下所示:Python 打印已使用griddata进行网格化的遮罩阵列,python,arrays,interpolation,matplotlib-basemap,masked-array,Python,Arrays,Interpolation,Matplotlib Basemap,Masked Array,我有一个卫星数据的2D数组,两个对应的2D数组给出每个像素的纬度和经度 数据数组是一个屏蔽数组 当我使用pcolormesh绘制它时,它如下所示: m.pcolormesh(lon, lat, data) 我正在尝试将此数据网格化为0.25x0.25度网格 lonGrid = arange(0, 360, 0.25) latGrid = arange(-90, 90 0.25) dataGridded = griddata(lon.ravel(),lat.ravel(),data.ravel
m.pcolormesh(lon, lat, data)
我正在尝试将此数据网格化为0.25x0.25度网格
lonGrid = arange(0, 360, 0.25)
latGrid = arange(-90, 90 0.25)
dataGridded = griddata(lon.ravel(),lat.ravel(),data.ravel(),latGrid,lonGrid, interp='linear')
m.pcolormesh(lonGrid, latGrid, dataGridded)
然而,结果图如下所示:
这个错误似乎与pcolormesh
填充屏蔽值之间的空间有关。但我不确定如何解决这个问题
谢谢
编辑:
我可以使用scipy版本的griddata来实现这一点……但是速度要慢得多,语法也更笨拙。我仍然希望得到一些帮助,让上面的mpl(?)版本正常工作
from scipy.interpolate import griddata as griddata2
lonGrid,latGrid = meshgrid(lonGrid,latGrid)
dataGrid = griddata2((lon.ravel(),lat.ravel()),data.ravel(),(lonGrid,latGrid), method = 'linear')
dataGrid = ma.masked_where((dataGrid < 0) | isnan(dataGrid), dataGrid)
m.pcolormesh(lonGrid, latGrid, dataGridded)
从scipy.interpolate导入griddata作为griddata2
lonGrid,latGrid=meshgrid(lonGrid,latGrid)
dataGrid=griddata2((lon.ravel(),lat.ravel()),data.ravel(),(lonGrid,latGrid),method='linear')
dataGrid=ma.masked_,其中((dataGrid<0)| isnan(dataGrid),dataGrid)
m、 pcolormesh(lonGrid、latGrid、DataGrid)
以下是一些初步的故障排除方法
dataGridded = griddata(lon.ravel(),lat.ravel(),XXXX.ravel(),latGrid,lonGrid, interp='linear')
我使用的是1.09之后的NumPy版本。Ravel()正在返回一个掩码数组。很抱歉使用了wind这个词,我想把它改成data。我编辑了原文。数据和数据网格都是屏蔽数组。