1

我有一个卫星数据的二维数组,以及两个对应的二维数组,给出每个像素的纬度和经度。

数据数组是一个掩码数组。

当我使用 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)

在此处输入图像描述

4

1 回答 1

1

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

  1. 您使用的是哪个版本的 Numpy?如果 1.09 或更早版本,如果给定一个掩码数组,.ravel() 将不会返回一个掩码数组。见这里
  2. 数据数组“wind”变成了“data”。“数据”真的被掩盖了吗?两人之间发生了什么?更多的代码会很有用。

    dataGridded = griddata(lon.ravel(),lat.ravel(),XXXX.ravel(),latGrid,lonGrid, interp='linear')
    
于 2016-11-09T00:34:04.623 回答