需要 Spatial Analyst 许可。
摘要
计算两个数据集之间交叉制表的区域并输出表。
插图
用法
区域定义为输入中具有相同值的所有区。各区域无需相连。栅格和要素都可用于区域输入。
如果输入栅格数据或要素区域数据(Python 中的 in_zone_data)或输入栅格数据或要素类数据(Python 中的 in_class_data)为栅格,则其必须为整型栅格。
如果两个输入均为栅格,且它们的像元大小不同,则输出像元大小为输入的最大值。输入栅格数据或要素类数据(Python 中的 in_class_data)将在内部作为捕捉栅格使用。如果像元大小相同,但是像元未对齐,则类数据将在内部作为捕捉栅格使用。在执行区域操作之前,上述任一情况都会触发内部重采样。
当区域和类输入均为具有相同像元大小的栅格,且像元对齐,则它们将直接在工具中使用。在工具执行期间,将不会在内部对其进行重采样。
如果输入栅格数据或要素区域数据(Python 中的 in_zone_data)为要素,输入栅格数据或要素类数据(Python 中的 in_class_data)为栅格,则将使用类数据的像元大小和像元对齐方式在内部将区域数据转换为栅格。
如果输入栅格数据或要素类数据(Python 中的 in_class_data)为要素,输入栅格数据或要素区域数据(Python 中的 in_zone_data)为栅格,则将使用区域数据的像元大小和像元对齐方式在内部将类数据转换为栅格。
如果两个输入均为要素,则范围将为输入最小值,像元大小为输出空间参考中区域要素数据集范围的宽度或高度较小值除以 250。
如果输入栅格或要素区域数据(Python 中的 in_zone_data)具有重叠面,则无法针对每个单独的面执行区域分析。因为要素输入已转换为栅格,所以每个位置只能拥有一个值。
另一种方法就是要为每个面区域反复进行区域操作并核对结果。
在指定输入区域或类数据时,默认字段将为第一个可用的整型或文本字段。如果不存在其他有效字段,则 ObjectID 字段(如 OID 或 FID)将成为默认字段。
如果将点或线用作输入栅格数据或要素类数据(Python 中的 in_class_data),则将报告由那些要素相交的区域。
区域制表工具以表的形式进行输出。
在此表中:
- 对于区域数据集的每个唯一值,都会存在一个相应的记录。
- 对于类数据集的每个唯一值,都会存在一个相应的字段。
- 各个记录将存储各个区域内每个类的面积。
有关使用此工具时可能遇到的某些问题的说明以及有关如何解决这些问题的建议,请参阅使用区域制表。
有关适用于此工具的地理处理环境的详细信息,请参阅分析环境和 Spatial Analyst。
语法
TabulateArea (in_zone_data, zone_field, in_class_data, class_field, out_table, {processing_cell_size})
参数 | 说明 | 数据类型 |
in_zone_data | 定义区域的数据集。 可通过整型栅格或要素图层来定义区域。 | Raster Layer; Feature Layer |
zone_field | 保存定义每个区域的值的字段。 该字段可以是区域数据集的整型字段或字符串型字段。 | Field |
in_class_data | 定义类的数据集将在各个区域内对类的面积进行汇总。 类输入可以是整型栅格图层或要素图层。 | Raster Layer; Feature Layer |
class_field | 用于保存类值的字段。 该字段可以是输入类数据的整型或字符串型字段。 | Field |
out_table | 将包含各区域中各个类面积的汇总的输出表。 表的格式由输出位置和路径确定。默认情况下,输出为一张地理数据库表。如果路径不在地理数据库中,则格式将由表达式确定。如果扩展名为 .dbf,则将采用 dBASE 格式。如果未指定扩展名,则输出将为 INFO 表。 | Table |
processing_cell_size (可选) | 用于分区操作的处理像元大小。 如果特别设置,则为环境中的值。如果未设置环境,则默认的像元大小将由区域数据类型确定,如下所示:
| Analysis Cell Size |
代码示例
TabulateArea 示例 1(Python 窗口)
本例返回包含各区域中各个类值面积的表。
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
TabulateArea("zonedata.shp", "IDStr", "valueraster", "VALUE",
"C:/sapyexamples/output/areatable.dbf", 2)
TabulateArea 示例 2(独立脚本)
本例返回包含各区域中各个类值面积的表。
# Name: TabulateArea_Ex_02.py
# Description: Calculates cross tabulated areas between two datasets.
# 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"
env.extent = "classgrid"
env.snapRaster = "classgrid"
# Set local variables
inZoneData = "zonedata.shp"
zoneField = "IDStr"
inClassData = "valueraster"
classField = "VALUE"
outTable = "C:/sapyexamples/output/areatable02.dbf"
processingCellSize = 2
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute TabulateArea
TabulateArea(inZoneData, zoneField, inClassData, classField, outTable,
processingCellSize)
环境
许可信息
- ArcGIS Desktop Basic: 需要 Spatial Analyst
- ArcGIS Desktop Standard: 需要 Spatial Analyst
- ArcGIS Desktop Advanced: 需要 Spatial Analyst