比较和量化发射光谱的相似性

时间:2019-06-30 18:06:36

标签: r correlation angle spectral spectra

我想比较发射光谱和参考光谱。我认为评估它们相似性的合适方法是计算皮尔逊系数或斯皮尔曼系数。我不确定哪个系数更合适。一方面,皮尔逊系数更适用于线性数据,而我的数据集则不是这种情况。另一方面,当我们有序数据时,斯皮尔曼系数是合适的。

在这里您可以看到我的代码来计算皮尔逊系数。我生成了两个虚拟数据集来说明这种情况。

x = 250:262
y = c(809,834,477,478,307,122,96,102,324,476,540,629,670)
data = cbind(x,y)

y2 = c(805,820,480,475,307,101,94,110,324,480,539,634,657)
ref = cbind(x,y2)

plot(data, col="red")
lines(data, col ="red")

plot(ref, col="blue")
lines(ref, col="blue")

cor.test(data, ref, method = "pearson")

您还有其他建议如何量化曲线的相似性?使用光谱角度映射器功能可能是一种解决方案。

为了实现光谱角映射功能,我找到了这段代码。

library(RStoolbox)
library(raster)
library(ggplot2)
View(lsat)
## Sample endmember spectra 
## First location is water, second is open agricultural vegetation
pts <- data.frame(x = c(624720, 627480), y = c(-414690, -411090))
endmembers <- extract(lsat, pts)
rownames(endmembers) <- c("water", "vegetation")

## Calculate spectral angles
lsat_sam <- sam(lsat, endmembers, angles = TRUE)
plot(lsat_sam)

## Classify based on minimum angle
lsat_sam <- sam(lsat, endmembers, angles = FALSE)

ggR(lsat_sam, forceCat = TRUE, geom_raster=TRUE) + 
  scale_fill_manual(values = c("blue", "green"), labels = c("water", "vegetation"))

sam功能的输入是图像。然后,据我了解,您定义了要从哪些像素中提取信息。是否可以直接输入要比较的发射光谱?

0 个答案:

没有答案