如何在python中对来自landsat数据的多个波段执行PCA分析?

2024-09-28 01:23:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我想创建一个5个陆地卫星波段的主成分分析来检测变化。我知道如何使用arcgis,但我可以在python中找到解决方案(jupyter笔记本)。 我有一个包含所有频带的数据数组varible和lon以及lat。然后我创建一个包含所有频带的数组(使用np.D堆栈((dataset\u 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)

Tags: 数据data波段np笔记本jupyterblue数组
1条回答
网友
1楼 · 发布于 2024-09-28 01:23:58

欢迎来到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提到的方法之一将帮助您可视化这些数据或推断进一步的信息。你知道吗

相关问题 更多 >

    热门问题