(len(緯度)、len(経度))の形のグローバル分散変数を使用して、関心領域に対応するサブセットを取得したい。2つのコーナーで2次元配列のサブセットを選択する最も簡単な方法
特定の領域は、2つのコーナー(左下の緯度/経度、右上の緯度/経度)で定義されます。だから、この配列は、私が今持っているものです。
VALUEロン
グローバルな分布を表す2次元配列は(-180.0、179.875)所有しているから、1次元配列です2880要素
緯度は、(-90,89.875)の1440要素を1次元配列にしたものです。
llcrnrlatなどがロン又は緯度に含まなくてもよいことを通知llcrnrlat、urcrnrlat、llcrnrlon、urcrnrlon = 15、50、90、150
、I「ができ
VALUE_SELECT = VALUE[np.where(Lat ==llcrnrlat):np.where(Lat ==urcrnrlat),
np.where(Lon ==urcrnrlat):np.where(Lon ==urcrnrlat)]
したがって、私の試みは、最も近い値の指標を見つけることを目指してLatとLonをループすることです。
def find_nearest(array,value): ## This function was clipped from website
idx = (np.abs(array-value)).argmin()
return array[idx]
llcrnrlon,urcrnrlon = 90,150
llcrnrlat, urcrnrlat = 15, 50
nx_st = np.where(lon == (find_nearest(lon,llcrnrlon)))[0]
nx_en = np.where(lon == (find_nearest(lon,urcrnrlon)))[0]
ny_st = np.where(lat == (find_nearest(lat,llcrnrlat)))[0]
ny_en = np.where(lat == (find_nearest(lat,urcrnrlat)))[0]
lon_select,lat_select = lon[nx_st:nx_en+1], lat[ny_st:ny_en+1]
value_select =VALUE[ny_st:ny_en+1,nx_st:nx_en+1]
した後、右ここに警告があり、これらのサブルーチンを実行します。
:ndimと配列変換> 0インデックスは、将来 場合名 ==「メイン」でエラーになります/Users/anaconda/lib/python2.7/site-packages/ipykernel/ メインの.py:1: VisibleDeprecationWarning:
- この警告または間違いのを避けるには?
- 私の場合に基づいて2次元配列のサブセットを取得する簡単な方法はありますか?
値は 'Lon'と' Lat'で均等に分布していますか? 「はい」の場合は、配列内でインデックスを検索する必要はありません。単なる丸め(1439 *(llcrnrlat + 90)/ 179.875)たとえば、 – tschundler
はい、値は均等に分布しています。 –