一、基本思路
光谱分块可以理解为把每一行所有波段上的数据切分出来:
假设图像数组为:
b = np.array([[[1,2,3,4],[5,6,7,8],[9,10,11,12]],
[[13,14,15,16],[17,18,19,20],[21,22,23,24]],
[[25,26,27,28],[29,30,31,32],[33,34,35,36]]])
数组维度代表的意义为:
[ bn,row,col ] 波段、行、列
二、一个小计算需求举例
假设现在将多年的某指数数据(每一年作为一个波段)做Layer Stacking之后,得到一景数据,然后要计算每个像元上指数的变化斜率,就需要按波段进行切分。
(1)假如先把第一行在所有波段的值全部切分出来:
c = b[:,0,:]
输出为:
[[ 1 2 3 4]
[13 14 15 16]
[25 26 27 28]]
(2)再按每一行里面的值逐列获取:
i=1:col
temp[i] =c [:,i]经过计算之后获取的k值
temp为一个一行col列的数组 ,维度为 [1;col]
(3)然后初始化一个数组:
outdata维度数为[row,col]
i=1:col j=1:row
outdata[j] = temp[i]
outdata用于存储每一行切分计算出来的k值,(2)中的每一个tmp数组都要作为一个行存到outdata中,最后组合成完整的斜率输出图像。