标注 | 说明 | 数据类型 |
输入要素 | 输入面要素。 | Feature Layer |
输出表 | 输出表。 | Table |
按字段报告 (可选) | 将使用一个或多个输入属性字段来确定唯一面或面组,并在输出中表示它们。 | Field |
包括区域重叠 (可选) | 指定是否会在输出中分析和包括重叠区域关系。
| Boolean |
包括邻域关系的两侧 (可选) | 指定是否会在输出中包括邻域关系的两侧。
| Boolean |
XY 容差 (可选) | 在将两个坐标视为相同坐标之前它们之间的最小距离。 默认情况下,此为输入要素的 x,y 容差。 警告:更改此参数的值可能会导致出现故障或意外结果。 建议不要修改此参数。 已将其从工具对话框的视图中移除。 默认情况下,将使用输入要素类的空间参考 x,y 容差属性。 | Linear Unit |
输出线性单位 (可选) | 指定将用于报告两个邻域面之间重合边的总长度的单位。 默认值为输入要素单位。
| String |
输出面积单位 (可选) | 指定将用于报告邻域面的区域重叠的单位。 默认值为输入要素单位。 只有选中了包括区域重叠参数时,此参数才处于活动状态。
| String |
插图
使用情况
该工具通过汇总源面和邻域面之间的以下内容来分析面邻接:
- 重叠面积(重叠邻域(可选))
- 重合边的长度(边邻域)
- 边界在源面与邻域面之间的某一点处交叉或接触的次数(节点邻域)
此工具只分析和报告一阶邻接。 不检查超出的关系;即不检查邻域的邻域(二阶邻接)。
按字段报告参数(Python 中 in_fields)用于确定唯一面或面组,并按面或面组报告其邻域信息。 要在输入中查找每个单独的面的邻域,指定为每个面生成唯一值或值集(在使用多个字段的情况下)的一个或多个输入字段。
如果已指定的字段确定了唯一的面组,则按组汇总和报告邻域信息。
有关使用此参数的详细信息,请参阅面邻域的工作原理。
您可以使用包括区域重叠参数来分析区域重叠关系。 当选中包括区域重叠时,输出表将包含 AREA 字段,该字段用于存储所分析的重叠邻域的重叠面积。 如果未发现重叠,则 AREA 字段值为 0。
提示:
计算区域重叠关系会占用较多的系统资源,执行起来比确定重合边和结点邻域关系可能要慢。 如果您知道数据中没有重叠要素或者您对分析重叠邻域不感兴趣,请确保未选中包括区域重叠参数(Python 中的 area_overlap = "NO_AREA_OVERLAP")。
警告:
要获取源面完全包含的邻域记录,必须在对话框中选中包括区域重叠参数(Python 中的 area_overlap = "AREA_OVERLAP")。 如果未选中包括区域重叠参数,则输出表将不包含源面中完全包含的邻域的记录。
输出表中不包含没有相邻要素的条目。
包括邻域关系的两侧参数用于控制输出中所包括的关系。 要报告所有邻接关系,包括相互关系,请选中包含邻域关系的两侧(Python 中的 both_sides = "BOTH_SIDES")。 例如,如果 OID1 是 OID2 的邻域,则将一个条目写入输出表:OID1 具有邻域 OID2,OID2 具有邻域 OID1。如果只需要第一侧的关系,则取消选中包括邻域关系的两侧。 使用上述示例,但要取消选中包括邻域关系的两侧,则在输出表中仅输入一个条目:OID1 具有邻域 OID2。
输出线性单位指定相邻要素间共享边界长度将使用的单位。 默认情况下,使用的单位与输入要素坐标系所定义的单位相同。
仅当选中包括区域重叠参数时(Python 中的 area_overlap = "AREA_OVERLAP")才使用输出面积单位。 选中了包括区域重叠后,在输出面积单位参数中指定用于计算邻域的区域重叠的单位。 默认情况下,使用的单位与输入要素的坐标系所定义的单位相同。
输出表参数值可以是文件地理数据库表或 .dbf 表。
对于按字段报告参数中指定的每个字段,输出表将包含两个使用以下命名约定的字段:src_<field> 和 nbr_<field>。 这些字段表示输入的源字段和邻域字段值。
输出表中还包含以下字段:
- AREA- 此字段用于存储源面和邻域面(重叠邻域)的总重叠面积。 仅当选中包括区域重叠参数时,输出表中才包括此字段(Python 中的 area_overlap = "AREA_OVERLAP")。
- LENGTH- 此字段存储源面和邻域面之间重合边的总长度。
- NODE_COUNT- 此字段存储源面和邻域面在某一点处交叉或接触的次数。
如果输入要素上有选择集,则将仅分析所选要素。
参数
arcpy.analysis.PolygonNeighbors(in_features, out_table, {in_fields}, {area_overlap}, {both_sides}, {cluster_tolerance}, {out_linear_units}, {out_area_units})
名称 | 说明 | 数据类型 |
in_features | 输入面要素。 | Feature Layer |
out_table | 输出表。 | Table |
in_fields [field,...] (可选) | 将使用一个或多个输入属性字段来确定唯一面或面组,并在输出中表示它们。 | Field |
area_overlap (可选) | 指定是否会在输出中分析和包括重叠关系。
| Boolean |
both_sides (可选) | 指定是否会在输出中包括邻域关系的两侧。
| Boolean |
cluster_tolerance (可选) | 在将两个坐标视为相同坐标之前它们之间的最小距离。 默认情况下,此为输入要素的 x,y 容差。 警告:更改此参数的值可能会导致出现故障或意外结果。 建议不要修改此参数。 已将其从工具对话框的视图中移除。 默认情况下,将使用输入要素类的空间参考 x,y 容差属性。 | Linear Unit |
out_linear_units (可选) | 指定将用于报告两个邻域面之间重合边的总长度的单位。 默认值为输入要素单位。
| String |
out_area_units (可选) | 指定将用于报告邻域面的区域重叠的单位。 默认值为输入要素单位。 仅当将 area_overlap 参数设置为 AREA_OVERLAP 时,才会启用此参数。
| String |
代码示例
在新斯科舍省中查找每个选举区的邻域。
import arcpy
arcpy.management.MakeFeatureLayer(r"C:\Data\Canada\CanadaElecDist.shp",
"Canada_ElectoralDist")
arcpy.management.SelectLayerByAttribute("Canada_ElectoralDist", "NEW_SELECTION",
"\"PROVCODE\" = 'NS'")
count = arcpy.management.GetCount("Canada_ElectoralDist")[0]
print("Selected feature count: {}".format(count))
arcpy.analysis.PolygonNeighbors("Canada_ElectoralDist",
r"C:\Data\Output\NS_elec_neigh.dbf", "ENNAME")
print(arcpy.GetMessages())
许可信息
- Basic: 是
- Standard: 是
- Advanced: 是