ArcGIS教程:主成分分析 |
您所在的位置:网站首页 › 如何做波段分析 › ArcGIS教程:主成分分析 |
摘要
对一组栅格波段执行主成分分析 (PCA) 并生成单波段栅格作为输出。 用法· 为主成分数指定的值可用于确定输出多波段栅格中的主成分波段数。该数目不得大于输入中的栅格波段总数。 · 栅格波段必须具有一个公共交集。如果不存在公共交集,则会出现错误,且不会创建任何输出。 · 在指定输出数据文件名的情况下,协方差和相关矩阵、特征值和特征向量以及各特征值所捕获的百分比方差和所述的累积方差都将存储在 ASCII 文件中。 · 百分比方差确定了各特征值所捕获的方差量。这可用于解释 PCA 的结果。如果少数特征值(各特征值与输出格栅中的波段对应)捕获了大量方差,则在后续波段分析中使用此波段子集可能已经足够,因为它们可以捕获原始多波段数据集中的大部分交互作用。 · 在确定各特征值所捕获的百分比方差时,将特征值之和输入以下公式:(特征值 * 100)/总和。第一个特征值(及其关联波段)捕获最大的方差,后续的特征值会捕获顺次较小的方差。累积的方差百分比为各特征值所捕获的连续方差之和。 · 如果输入为创建自多波段栅格(超过三个波段)的图层,则操作将会考虑与源数据集相关联的所有波段,而不仅仅是由图层加载(符号化)的三个波段。 · 您可以使用多种方式将多波段栅格的波段子集指定为工具的输入。 § 如果要使用工具对话框,则通过输入栅格波段旁边的按钮导航至多波段栅格,打开栅格并选择所需波段。 § 如果多波段栅格是内容列表中的图层,则可以使用创建栅格图层工具来创建一个新的只包含所需波段的多波段图层。 § 您还可以用波段合成来创建一个只包含所需波段的新数据集,并将生成的数据集用作工具的输入。 § 在 Python 中,可以在工具参数中以列表形式直接指定所需波段。 语法PrincipalComponents (in_raster_bands, {number_components}, {out_data_file}) 参数 说明 数据类型 in_raster_bands [in_raster_band,...] 输入栅格波段。 Raster Layer number_components (可选) 主成分的数目。 该数目必须大于零并小于等于输入栅格波段总数。 默认值为输入的栅格波段总数。 Long out_data_file (可选) 存储主成分参数的输出 ASCII 数据文件。 输出文件的扩展名可为 .txt 或 .asc。 File 返回值名称 说明 数据类型 out_multiband_raster 输出多波段栅格数据集。 如果输出是一个 Esri Grid 栅格,名称必须少于 10 个字符。 Raster 代码实例 主成分分析 (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") |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |