2016-11-16 14 views
0

非定常グリッドの衛星データをグローバルな0.25 x 0.25 degグリッドに変換する最も効率的な方法を考え出すのに問題があります。Pythonのlat/lonグリッドにデータを補間する

私は衛星データの2次元配列と、各ピクセルの緯度と経度を与える2つの対応する2次元配列を持っています。

m.pcolormesh(lon, lat, windSpeed) 

enter image description here

私は0.25×0.25度グリッド

lonGrid = arange(-180, 180, res) 
latGrid = arange(-90, 90, res) 
lonGrid,latGrid = meshgrid(lonGrid,latGrid) 

上にこのデータを補間したい私は」:私はpcolormesh、それはこのようになります使用して、それをプロット

veはmpl_toolkits.basemap.interp()関数を使いこなそうとしましたが、latとlonポイントを単調に増やす方法を理解することはできません。 e関数。私は孤独なグリッドをつぶして、それを並べ替えることができますし、同じようにargsortを使ってwindSpeedとlatグリッドを並べ替えることもできますが、latは単調に増加しません。

lon = lon.ravel() 
lat = lat.ravel() 
windSpeed = windSpeed.ravel() 

lon[lon > 180] = lon[lon > 180] - 360 

lonSortInds = argsort(lon) 

result = mpl_toolkits.basemap.interp(windSpeed2, lon2, lat2, lonGrid, latGrid, checkbounds=False, masked=True, order=1) 

lat = lat[lonSortInds] 
windSpeed = windSpeed[lonSortInds] 

lon = sort(lon) 

result = mpl_toolkits.basemap.interp(windSpeed, lon, lat, lonGrid, latGrid, checkbounds=False, masked=False, order=1) 

ValueError: xin and yin must be increasing!

これを行うための最善の方法をいただきましたか!?

答えて

0

私はちょうど持っていたのと同じエラーで、別のタイプの並べ替えを行うことで修正しました。

あなたの緯度は、あなたが試すことができます増加していない場合は、次の

np.flipud(lat) np.flipud(windSpeed)

か、その後増加していないことの経度の場合:これは私が持っていた同様の問題を解決し

np.fliplr(lon) np.fliplr(windSpeed)

関連する問題