ArcGIS教程:主成分分析

  摘要

  对一组栅格波段执行主成分分析 (PCA) 并生成单波段栅格作为输出。

  用法

  · 为主成分数指定的值可用于确定输出多波段栅格中的主成分波段数。该数目不得大于输入中的栅格波段总数。

  · 栅格波段必须具有一个公共交集。如果不存在公共交集,则会出现错误,且不会创建任何输出。

  · 在指定输出数据文件名的情况下,协方差和相关矩阵、特征值和特征向量以及各特征值所捕获的百分比方差和所述的累积方差都将存储在 ASCII 文件中。

  · 百分比方差确定了各特征值所捕获的方差量。这可用于解释 PCA 的结果。如果少数特征值(各特征值与输出格栅中的波段对应)捕获了大量方差,则在后续波段分析中使用此波段子集可能已经足够,因为它们可以捕获原始多波段数据集中的大部分交互作用。

  · 在确定各特征值所捕获的百分比方差时,将特征值之和输入以下公式:(特征值 * 100)/总和。第一个特征值(及其关联波段)捕获最大的方差,后续的特征值会捕获顺次较小的方差。累积的方差百分比为各特征值所捕获的连续方差之和。

  · 如果输入为创建自多波段栅格(超过三个波段)的图层,则操作将会考虑与源数据集相关联的所有波段,而不仅仅是由图层加载(符号化)的三个波段。

  · 您可以使用多种方式将多波段栅格的波段子集指定为工具的输入。

  · 如果要使用工具对话框,则通过输入栅格波段旁边的按钮导航至多波段栅格,打开栅格并选择所需波段。

  · 如果多波段栅格是内容列表中的图层,则可以使用创建栅格图层工具来创建一个新的只包含所需波段的多波段图层。

  · 您还可以用波段合成来创建一个只包含所需波段的新数据集,并将生成的数据集用作工具的输入。

  · 在 Python 中,可以在工具参数中以列表形式直接指定所需波段。

  语法

  PrincipalComponents (in_raster_bands, {number_components}, {out_data_file})

  代码实例

  主成分分析 (PrincipalComponents) 示例 1(Python 窗口)

  此例对输入多波段栅格执行主成分分析 (PCA) 并生成多波段栅格输出。

  import arcpy

  from arcpy import env

  from arcpy.sa import *

  env.workspace = “C:/sapyexamples/data”

  outPrincipalComp = PrincipalComponents([“redlands”], 4,”pcdata.txt”)

  outPrincipalComp.save(“C:/sapyexamples/output/outpc01”)

  主成分分析 (PrincipalComponents) 示例 2(独立脚本)

  此例对输入多波段栅格执行主成分分析 (PCA) 并生成多波段栅格输出。

  # Name: PrincipalComponents_Ex_02.py

  # Description: Performs principal components analysis on a set of raster bands.

  # Requirements: Spatial Analyst Extension

  # Import system modules

  import arcpy

  from arcpy import env

  from arcpy.sa import *

  # Set environment settings

  env.workspace = “C:/sapyexamples/data”

  # Set local variables

  inRasterBand1 = “redlands/redlandsc1”

  inRasterBand2 = “redlands/redlandsc3”

  numberComponents = 2

  outDataFile = “C:/sapyexamples/output/pcdatafile.txt”

  # Check out the ArcGIS Spatial Analyst extension license

  arcpy.checkOutExtension(“Spatial”)

  # Execute PrincipalComponents

  outPrincipalComp = PrincipalComponents([inRasterBand1, inRasterBand2], 2,

  outDataFile)

  # Save the output

  outPrincipalComp.save(“C:/sapyexamples/output/outpc01”)

转载自:https://blog.csdn.net/dsac1/article/details/46912609

You may also like...