简介
K-T变换即坎斯-托马斯变换(Kauth-Thomas Transformation)、又称缨子帽变换(Tasselled Cap Transformation)。根据多光谱遥感中土壤、植被等信息在多维光谱空间中信息分布结构对图像做的经验性线性正交变换。
1976年,坎斯(R JKanth)和托马斯(G SThomas)在用MSS数据研究农作物和植被的生长过程中发现,在MSS四个波段构成的四维光谱空间中,土壤的点群分布从暗色土壤到浅色土壤构成从坐标原点向外的辐射线,称为土壤线。植被和农作物随着生长过程中植冠的发育、茂盛、衰落和枯萎,其点群分布构成从土壤线开始又回到土壤线上的缨帽状,反映植被成长的“绿色”方向、植被枯萎的“黄色”方向和土壤线三者互相垂直,它们的光谱特征互不相关而相对独立,从而可以通过正交线性交换将它们变换到由这三个轴和另一个“其他”轴组成的新的特征空间中,而将它们分开来。变换后的四个分量分别称为“亮度”、“绿色物”、“黄色物”和其他。l984年,克里斯特(EP Crist)和锡康(R CCicone)发现TM6个反射波段的数据也有类似的结构,可用三维空间中的植被平面、与之垂直的土壤平面和它们之间过渡带表示,变换后前三个分量分别定名为“亮度”、“绿度”和“湿度”,它们分别反映了土壤岩石、植被及土壤和植被中的水分信息。
计算
-
转换矩阵
# landsat5 转换系数 # coefficients = ee.Array([ [0.3037, 0.2793, 0.4743, 0.5585, 0.5082, 0.1863], [-0.2848, -0.2435, -0.5436, 0.7243, 0.0840, -0.1800], [0.1509, 0.1973, 0.3279, 0.3406, -0.7112, -0.4572], [-0.8242, 0.0849, 0.4392, -0.0580, 0.2012, -0.2768], [-0.3280, 0.0549, 0.1075, 0.1855, -0.4357, 0.8085], [0.1084, -0.9022, 0.4120, 0.0573, -0.0251, 0.0238] ]) # landsat8 转换系数 # coefficients = ee.Array([ [0.3029, 0.2786 , 0.4733, 0.5599, 0.5082, 0.1872], [-0.2941, -0.2435, -0.5424, 0.7276, 0.0713, -0.1608], [0.1511, 0.1973, 0.3283, 0.3406, -0.7117, -0.4559], [-0.8239, 0.0849, 0.4396, -0.0580, 0.2013, -0.2773], [-0.3294, 0.0557, 0.1056, 0.1855, -0.4349, 0.8085], [0.1079, -0.9023, 0.4119, 0.0575, -0.0259, 0.0252] ])
-
函数
函数中B2等为landsat8波段名,不同影像使用时需要进行转换,具体可参照GEE数据集中的波段介绍def MTC_Transform(tif): #不同分量波段矩阵变换 tcb = tif.expression( "B2*(0.3037)+B3*(0.2793)+B4*(0.4743)+B5*(0.7243)+B6*(0.0840)+B7*(0.1863)", { "B2": tif.select(["B2"]), "B3": tif.select(["B3"]), "B4": tif.select(["B4"]), "B5": tif.select(["B5"]), "B6": tif.select(["B6"]), "B7": tif.select(["B7"]), }).rename("TCB") tcg = tif.expression( "B2*(-0.2848)+B3*(-0.2435)+B4*(-0.5436)+B5*(0.5585)+B6*(0.5082)+B7*(-0.1800)", { "B2": tif.select(["B2"]), "B3": tif.select(["B3"]), "B4": tif.select(["B4"]), "B5": tif.select(["B5"]), "B6": tif.select(["B6"]), "B7": tif.select(["B7"]), }).rename("TCG") tcw = tif.expression( "B2*(0.1509)+B3*(0.1973)+B4*(0.3279)+B5*(0.3406)+B6*(-0.7112)+B7*(-0.4572)", { "B2": tif.select(["B2"]), "B3": tif.select(["B3"]), "B4": tif.select(["B4"]), "B5": tif.select(["B5"]), "B6": tif.select(["B6"]), "B7": tif.select(["B7"]), }).rename("TCW") #将波段添加到影响内 return tif.addBands(tcb).addBands(tcg).addBands(tcw)