Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 打印已使用griddata进行网格化的遮罩阵列_Python_Arrays_Interpolation_Matplotlib Basemap_Masked Array - Fatal编程技术网

Python 打印已使用griddata进行网格化的遮罩阵列

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

我有一个卫星数据的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(),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)

以下是一些初步的故障排除方法

  • 您使用的是什么版本的Numpy?如果为1.09或更低版本,则.ravel()将不会返回掩码数组(如果给定了掩码数组)。看
  • 数据数组“风”变成了“数据”。“数据”真的被掩盖了吗?两人之间发生了什么?更多的代码会很有用

    dataGridded = griddata(lon.ravel(),lat.ravel(),XXXX.ravel(),latGrid,lonGrid, interp='linear')
    

  • 我使用的是1.09之后的NumPy版本。Ravel()正在返回一个掩码数组。很抱歉使用了wind这个词,我想把它改成data。我编辑了原文。数据和数据网格都是屏蔽数组。