1

衛星データの 2D 配列と、各ピクセルの緯度と経度を示す 2 つの対応する 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、マスクされた値の間のスペースを埋めることに関係しているようです。しかし、これを修正する方法がわかりません。

ありがとう

編集:

griddata の scipy バージョンを使用してこれを機能させることができました...しかし、はるかに遅く、構文はより不格好です。上記の 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 に答える