用字符串

时间:2016-03-30 17:17:44

标签: python-2.7

我正在尝试在python代码中读取多波段图像。我的要求是形成一个邻域矩阵。所以我需要用一些数字填充矩阵,以便能够为每个元素形成邻域。 防爆。 a是一个矩阵,填充0

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

我正在使用numpy.pad(below),它与单频段完美配合。但对于多频段,它将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 个答案:

答案 0 :(得分:1)

a转换为可以是值noDataValue

的类型

e.g。

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))

它可以在这里工作