我想创建一个由5个陆地卫星带组成的PCA,以检测变化。我知道如何使用arcgis,但可以在python(jupyter Notebook)中找到解决方案。 我的所有乐队都有varibale和lon和lat。然后,我用所有波段创建一个数组(使用np.dstack((dataset_1984.blue等))。此后结束,我不知道该如何继续。一些帮助将非常有用。
stacked = np.dstack((dataset_1984.blue,dataset_1984.green,dataset_1984.red,dataset_1984.nir,dataset_1984.swir1))
创建的
array([[[ 348, 502, 397, 2974, 1370],
[ 348, 502, 397, 2974, 1370],
[ 368, 502, 397, 3270, 1370],
...,
[ 603, 887, 843, 3121, 2082],
[ 603, 887, 843, 3121, 2082],
[ 738, 1172, 1380, 2364, 2456]],
[[ 369, 544, 471, 2889, 1399],
[ 388, 627, 507, 3354, 1833],
[ 388, 627, 507, 3354, 1833],
...,
[ 680, 1009, 1165, 2575, 2715],
[ 680, 1009, 1165, 2575, 2715],
[ 757, 1172, 1416, 2279, 2743]],
然后:
data = stacked - np.mean(stacked, axis=0)
data.shape
(353, 588, 5)
答案 0 :(得分:0)
欢迎来到Stackoverflow!
您可以使用scikit-learn来完成此任务:
import numpy as np
from sklearn.decomposition import PCA
pca = PCA(n_components=2)
pca.fit(data)
PCA(copy=True, iterated_power='auto', n_components=2, random_state=None, svd_solver='auto', tol=0.0, whiten=False)
这样做之后,here中提到的一种方法将帮助您可视化此数据或推断出更多信息。