插图
使用方法
该工具用于分析面邻接,汇总
- 重叠面积(重叠邻域(可选))
- 重合边的长度(边邻域)
- 边界在源面与邻域面之间的某一点处交叉或接触的次数(节点邻域)
此工具只分析和报告一阶邻接;不检查超出的关系;即不检查邻域的邻域(二阶邻接)。
按字段报告参数(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 - 前缀 src 表示源、field 是在按字段报告参数中指定的字段。您获取在按字段报告参数中指定的所有此类字段。
- nbr_field(s) - 前缀 nbr 表示邻域、field 是在按字段报告参数中指定的字段。与 src_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 (可选) | 在将两个坐标视为相同坐标之前它们之间的最小距离。默认情况下,该距离为输入要素的 XY 容差。 警告:更改此参数的值可能会导致出现故障或意外结果。建议不要修改此参数。已将其从工具对话框的视图中移除。默认情况下,将使用输入要素类的空间参考 x,y 容差属性。 | Linear Unit |
out_linear_units (可选) | 用于报告两个邻域面之间重合边的总长度的单位。默认值为输入要素单位。
| String |
out_area_units (可选) | 用于报告邻域面的区域重叠的单位。默认值为输入要素单位。仅当 area_overlap="AREA_OVERLAP" 时此参数才可用。
| String |
代码示例
在新斯科舍省中查找每个选举区的邻域。
import arcpy
arcpy.MakeFeatureLayer_management(r"C:\Data\Canada\CanadaElecDist.shp",
"Canada_ElectoralDist")
arcpy.SelectLayerByAttribute_management("Canada_ElectoralDist", "NEW_SELECTION",
"\"PROVCODE\" = 'NS'")
count = arcpy.GetCount_management("Canada_ElectoralDist")[0]
print("Selected feature count: {}".format(count))
arcpy.PolygonNeighbors_analysis("Canada_ElectoralDist",
r"C:\Data\Output\NS_elec_neigh.dbf", "ENNAME")
print(arcpy.GetMessages())
许可信息
- Basic: 是
- Standard: 是
- Advanced: 是