この質問に対する答えを探しているコミュニティの方には、私が現在実装している方法(v。類似の目的のために、衛星データのジオロケーションをテストしようとしています)にはランドマスクが必要です。
オンラインでは、ルールと特性がそれぞれ異なるランドマークのデータセットが利用できます。私はPythonでnetCDF4データを扱っています。私のランドマスクは、海洋要素が1、土地要素が0と評価されているグリッド化.ncデータセットです。
私の衛星データを繰り返します。それぞれの緯度と経度の値にランドマスク内の1度あたりの要素の数。私の場合は120個の緯度/経度の学位あたりの要素なので、
lon_inds = (lons*120).astype(int)
lat_inds = (lats*120).astype(int)
それぞれ
len(lons)/360
len(lats)/180
120を代入伴うだろうこれを書いて、より一般的な方法があります。これらの操作の両方の例は、numpy配列を使用するとほぼ即座に実行できます(これはpython netCDF4モジュールの場合です)。
は今、私は自分のマスクを作成します。
my_mask = np.zeros(data.shape, dtype=int)
:それは(すべて同一の寸法を持つことになります密接衛星、データ、ラッツとロンアレイに精通していない人のための)データ配列と同じ次元を持つ必要があります
ここでは、海岸線があるマスクの値を置き換えるだけです。場合、これは1に
mask[i,j]
の値を、lat_indsとlon_indsアレイを反復ルックアップ値を
landmask[lon_inds[i,j],lat_inds[i,j]]
のlandmaskおよび変化させることによって行われる近隣の任意
landmask[lon_inds[i,j]-1,lat_inds[i,j]]
landmask[lon_inds[i,j]+1,lat_inds[i,j]]
landmask[lon_inds[i,j],lat_inds[i,j]-1]
landmask[lon_inds[i,j],lat_inds[i,j]+1]
は0ではありません(もちろん、斜めに隣接するセルを追加することでより滑らかな海岸線を生成することができますが、ランドマークのデータを使用することをお勧めします)衛星データよりも鮮明な空間分解能を備えています)。
これは私がやろうとしていることではありません。私は質問を明確にします... –