ArcGIS教程:类别概率

来源:互联网 发布:猫跳跃能力 知乎 编辑:程序博客网 时间:2024/05/16 10:21

  摘要

  创建概率波段的多波段栅格,并为输入特征文件中所表示的每个类对应创建一个波段。

  用法

  · 通过创建特征、编辑特征,或通过 Iso 聚类工具创建的任何特征文件,对于输入特征文件而言均为有效条目。它们都具有一个 .gsg 扩展名。

  · 此工具采用贝叶斯统计来评估类别概率。贝叶斯统计包括以关于数据的先验信息开始,然后在收集数据后更新该信息。有关数据值的先验信息将被使用先验概率进行量化,然后先验概率被通过似然函数加以调整以接收后验概率(已更新的信息)。似然函数由每个类/聚类的数据值定义。

  · 输入先验概率文件必须是包含两列的 ASCII 文件。左列中的值表示类 ID。右列中的值表示相应类的先验概率。类别先验概率的有效值必须大于等于零。如果指定零作为概率,则不会为输出多波段栅格中的类创建任何关联的概率波段。指定先验概率的总和必须小于等于一。显示文件格式的示例如下:

  · 1 .3

  · 2 .1

  · 4 .0

  · 5 .15

  · 7 .05

  8 .2

  文件中所忽略的类将接收值 1 其余部分的平均先验概率。在上面的示例中,所有从 1 到 8 的类都在特征文件中表示。类3 和类 6 的先验概率在输入先验概率文件中缺失。由于上述文件中所有指定概率的总和等于 0.8,概率的其余部分 (0.2)将与未指定类的数量 (2) 相除。因此,类 3 和类 6 将被分别指定概率 0.1。

  输入先验概率文件的扩展名可以是 .txt 或 .asc。

  · 用作最大输出值的输入值可用来设置输出概率波段中值的范围上限。默认值 100 将为各波段创建整数值范围为 0 到 100的多波段栅格。任何大于零的整数值都可用作有效的最大输出值。只有最大输出参数值为 1 时,才会生成包含浮点值的波段。

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

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

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

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

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

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

  语法

  ClassProbability (in_raster_bands, in_signature_file, {maximum_output_value}, {a_priori_probabilities}, {in_a_priori_file})

  代码实例

  ClassProbability 示例 1(Python 窗口)

  在本示例中,将为特征文件中每个类的概率波段创建多波段栅格。

  import arcpy

  from arcpy import env

  from arcpy.sa import *

  env.workspace = "C:/sapyexamples/data"

  outClassProbability = ClassProbability("redlands","C:/sapyexamples/data/wedit5.gsg",

  100,"EQUAL","")

  outClassProbability.save("c:/sapyexamples/output/classprob")

  ClassProbability 示例 2(独立脚本)

  在本示例中,将为特征文件中每个类的概率波段创建多波段栅格。

  # Name: ClassProbability_Ex_02.py

  # Description: Creates probability layers for each class in a signature file.

  # 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

  inRaster = "redl123"

  inSigFile = "c:/sapyexamples/data/wedit5.gsg"

  maxValue = 100

  aPrioriWeight = "EQUAL"

  aPrioriFile = ""

  # Check out the ArcGIS Spatial Analyst extension license

  arcpy.CheckOutExtension("Spatial")

  # Execute ClassProbability

  outClassProbability = ClassProbability(inRaster,inSigFile,

  maxValue, aPrioriWeight, aPrioriFile)

  # Save the output

  outClassProbability.save("c:/sapyexamples/output/classprob01")

0 0