Spatial Analyst 类

需要 Spatial Analyst 许可。

可使用类创建对象,通常称为实例。 将对象实例化后,即可使用其属性和方法。 Spatial Analyst 类,如邻域类和重映射类,通常用作地理处理工具参数设置的快捷方式,否则的话,这些参数会使用更加复杂的字符串。

通过类而非字符串创建和管理参数要容易得多。 使用类作为参数的好处如下:

  • 类可以帮助并自动完成形式参数的各种实际参数的输入。
  • 可以通过生成的对象来查询形式参数的各个实际参数。
  • 可以修改类的各个实际参数以做进一步分析。

如需了解有关在地图代数中使用 Spatial Analyst 类的其他信息,请参阅以下内容:

以下是可以使用类轻松执行的应用程序示例:

  • 确定类的类型或各个参数值:

    例如,通过查询输入半径类型和搜索距离可确定在反距离权重 (IDW) 插值法中应用的乘方。

  • 更改输入值:

    例如,您可以根据论坛上公开的输入更改适宜性模型中的输入重分类值,从而探究不同情景对输出的影响,而无需重新创建重映射表。

  • 执行灵敏度分析:

    例如,您可以按 5% 的增量以迭代方式更改适宜性模型的重映射表中的 ToFrom 值,从而探究输入条件的细微变化会如何影响输出。

  • 执行误差分析:

    例如,您可以多次运行模型,每次随意更改形式参数的实际参数,从而探究数据中的误差和不确定性可能产生的影响。

使用 Spatial Analyst

一些 Spatial Analyst 地理处理工具参数使用类对象作为输入。 通常,参数定义为简单字符串、数据集名称、路径、关键字、字段名称、容差和域名。 有些参数更为复杂,定义了一系列属性或值。 这种情况下,可使用类(例如,邻域或重映射表)来定义这些参数,而不必使用复杂的长文本字符串。 了解类构造函数的输入要求可以更轻松地创建、查询、更改和保存类对象。

以下是用作 Spatial Analyst 类参数的不同类型的输入:

  • 标量
  • 字符串
  • Python 列表或一系列列表
  • 其他类

为了提高可读性,建议将类设置为变量和工具中使用的变量。 例如:

Neighborhood = NbrRectangle(5, 5, "MAP")
outRas = FocalStatistics("inRas", Neighborhood, "MEAN")

但是,如果您愿意,也可以在工具参数中定义类。

outRas = FocalStatistics("inRas", NbrRectangle(5, 5, "MAP"), "MEAN")

使用固定数量的输入创建的类

有些类使用固定数量的简单标量或字符串参数构造。 例如,创建一个半径为五个地图单位的圆形邻域:

Neighborhood = NbrCircle(5, "MAP")
outRas = FocalStatistics("inRas", Neighborhood, "MAXIMUM")

这些类中的每一个类都有预先确定的输入参数位置。 这些类可根据其所处理的工具参数进行分组:

使用 Python 列表创建的类

有些类较为复杂,如 TopoBoundaryTopoLakeTopoStream 类。 这些类需要一系列输入,并且用于地形转栅格工具中的参数。 输入系列在 Python 列表中定义,列表中的输入数量取决于具体情况(也就是分析所需的输入数量)。

例如,TopoBoundary 类构造函数需要包含一个或多个 inFeature 输入的列表。 标识为 inFeatures 的列表成为所生成对象的一个属性。 要查询或操作 inFeatures 列表中的任何项目,均可将每个项目视为列表中的一个条目(请参阅查询类)。

inBoundary = TopoBoundary(["inBound1.shp", "inBound2.shp"])

使用列表中的列表创建的类

使用其他工具时,将根据具体情况决定在一个参数中输入多少个输入条目。 这种类型的输入参数通过使用列表中的列表创建的类生成。 有三组工具的类基于列表中的列表创建:

例如,重映射类需要一个表作为输入。 该表使用代表 startValue、endValue 和 newValue 这三类的记录列表进行建模。 表成为所生成对象的一个属性。 要查询或操作任何表输入,均可将表输入视为列表中的列表的条目(请参阅查询类)。

# Usage: RemapRange([[startValue, endValue, newValue],...])
myRemapRange = RemapRange([[-3, -1.75, 1], [-1.75, -0.5, 2], [-0.5, 0.75, 3], 
                           [0.75, 2, 4], [2, 3.25, 5], [3.25, 4.5, 6],
                           [4.5, 5.75, 7], [5.75, 7, 8]])
outReclassRR = Reclassify("inRas", "VALUE", myRemapRange)

使用列表中的一系列类创建的类

一些工具使用需要一系列类作为输入的类参数。 这些类组成一个列表。 以下工具需要使用列表中的一系列类:按点提取按矩形提取,它们通常按指定几何来提取数据。

相关主题


在本主题中
  1. 使用 Spatial Analyst