2016-03-30 17 views
0

私はマルチバンド画像をPythonコードで読み込もうとしています。私の必要条件は、近傍行列を形成することです。だから私は、各要素のために近所を形成できるようにいくつかの番号で行列を埋める必要があります。 Ex。私はこのためnumpy.pad(below)を使用していますが、それは単一バンドで完璧に動作0パディングnumpy配列/文字列の文字列

a= |1 2 3 | 
    |4 5 6 | 
    |7 8 9 | 
neighborhood matrix = |0 0 0| 
         |0 1 2| 
         |0 4 5| 

と行列、パディングです。しかし、マルチバンドの場合、noDataValueは0〜255の同等のものに変換され、それにはパッドが付いています。

pixels = np.pad(a, (padding,padding), mode='constant', constant_values=(noDataValue)) 

どこpadding = 1noDataValue = -999.0が、それは自動的に125にそれを変換し、これが唯一のマルチバンドのために起こっています。だから、どんな助けもありがとう。

または

文字列で行列を埋め込むことができます。私はStringでパディングするのに役立つ関数を見つけることができませんでした。

アップデート1

enter image description here

答えて

1

変換a

例えばnoDataValue値とすることができるタイプ

import numpy as np 
# .... 
a = [[1,2,3],[4,5,6],[7,8,9]] 
a = np.array(a).astype(np.float32) 
padding = 2 
noDataValue = -999.0 
pixels = np.pad(a, (padding,padding), mode='constant', constant_values=(noDataValue)) 

それはここで私ははAttributeErrorを取得しています

+0

に動作します。 'リスト' オブジェクトには属性 'astype' がありません。それはどんな数でも埋められますか? –

+0

申し訳ありませんが、2D numpy配列に2秒間変換する必要があります。今働いている? –

+0

さて、私はこれを試しました a = [[1,2,3]、[4,5,6]、[7,8,9]] アルファ= np.reshape(a、(-1,3) ) Alpha = Alpha.astype(np.int64) エラー:KeyboardInterrupt –