2011-10-30 9 views
1

私は衛星画像を読んで、latとlonのデータを画像から取り出して配列に入れました。 latの次元は(135,90)、lonも(135,90)です。データの次元はもともと(135,90,4,9,8)であり、4つはイメージのバンドを表しています。処理後(すべてのバンドを1つの画像に入れるためにforループを使用した)、データのサイズはbiw(1215,720)であり、(135 x9,90 x 8)です。私は、コードの一部、持っている:pcolorを使ってpythonで3つの配列をプロットする

x = lat # dimension (135,90) 
y = lon # dimension (135,90) 
z = data # dimension (1215, 720) 

plt.figure() 
plt.pcolor(x,y,z) 
plt.colorbar() 
plt.savefig("proj1.png") 

をしかし、それは以下の非常に悪いイメージを作成:

私の友人は、私が緯度でより多くのポイントを取るとすべきである前に私に言ったenter image description here

これはデータと同じ次元にするためです。しかし、それを行う方法を知らない。彼が言った方法は正しいのですか?

答えて

0

その私に再び... matplotlibのためのドキュメントはここhttp://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.pcolor XとY

ことを言って、与えられた場合には、色の四角形の座標(x、y)を指定します。 Cのものよりも1大きくなければならない理想的にはXとYの寸法

(X[i, j], Y[i, j]), 
    (X[i, j+1], Y[i, j+1]), 
    (X[i+1, j], Y[i+1, j]), 
    (X[i+1, j+1], Y[i+1, j+1]). 

; C [I、J]のための四角形の位置は角部を有しています次元が同じ場合、Cの最後の行と列は無視されます。

Cの寸法(または形状)は、XとYとはまったく異なります。マットプロットリブは、(1)X、Yをグリッドポイント(またはコーナーポイント)のx座標とy座標、 (2)Cは、隣接する4つの格子点によって覆われたタイルの値である。あなたはx、yが135と90の形をしています。その後、色は134 x 89、または135と90のいずれかになります。

私はこのCのデータはmodisピクセルから得たものであり、それらは135x90です。だから、それらの12150タイルのコーナーポイントを指定する必要があります...意味がありますか?中心点の緯度/経度を知っている場合は、それらを左/下の半分の距離だけシフトし、次に右と上の1つの行と列を追加して格子点を作成します。 lat/lonの代わりに投影座標を使用する場合は、同じことです。または、これらの半分の距離の取引を忘れて、pcolorを使うために135x90でなければならないCと一緒に、あなたがすでに持っているXとYをそのまま(135x90)に差し込んでください。

9,8インチ(135,90,4,9,8)の意味はなんですか?あなたは各水平グリッドセルで9 * 8の異なるプロパティを持っていますか?例えば垂直層、異なる種類の化学種、または物理的特性?その場合、1つを選択してプロットを1つずつ作成する必要があります(つまり、XとYと共に135x90のCのみをフィードする)。また、4は「バンド」のことです。 RGBKのようなこのidカラーバンドでその色を表示したいのであれば、おそらくpcolorは良くないので、それらの4つの数字を理解する何か他の関数か何かを探す必要があります。 pcolorのは、単にその後、その後、青から赤にカラースケールを適用する(または、あなたがしなければあなたが選ぶ何でも)最小と最大の間のスケールを適用し、

EDIT

の数の範囲を読んで、私はレベル - のためのデータセットをつかん1B、VISIBLE、http://disc.sci.gsfc.nasa.gov/AIRS/data-holdings/by-access-methodからのドキュメンテーション。

このデータセットは、0.4〜1の4つのチャネルを含むAIRSレベル1Aデジタル番号(DN)から生成されます。スペクトルの0μm領域。 1日分のAIRSデータは、それぞれ6分間の240シーンに分割されます。 AIRS可視/近赤外測定の場合、個々のシーンには、720本のクロストラックピクセルと9本のトラックに沿ったピクセルを含むスキャンラインを含む135本のスキャンラインが含まれています。 1シーンにつき合計720×9×135 = 874,800の可視/近赤外画素がある。

各位置で平均8x9値を取得し、4つのトラックの1つを1つずつ選択するのが最も簡単です。あるいは、以下波長に示すように、これらのバンドは、異なる色に対応するので、

  • チャネル1:0.41 UM - 0.44 UM
  • チャネル2:0.58 UM - 0.68 UM
  • チャンネル3:0.71 UMは - 0.92 umの
  • チャンネル4:0.49ええと - 0.94 umの

あなたは多分、pylabの関数imshow()関数の入力のためのRGBK値としてこれらを使用することができます。空間平均後の出力の粗分解能が気に入らないかもしれません。その場合は、どうにかして各位置の(9,8)ピクセルの座標を取る必要があります。しかし、標準的な方法があるはずですが、そのデータは広く使われている公開データです。

関連する問題