面邻域 (Analysis)
插图
用法
此工具用于分析面邻接,汇总源面和邻域面之间的
- 重叠面积(重叠邻域(可选))
- 重合边的长度(边邻域)
- 边界在某一点处交叉或接触的次数(结点邻域)
此工具只分析和报告一阶邻接;不检查超出的关系;即不检查邻域的邻域(二阶邻接)。
按字段报告参数(脚本中的 in_fields)用于确定唯一面或面组,并按该面或面组报告其邻域信息。要在输入中查找每个单独的面的邻域,指定为每个面生成唯一值或值集(在使用多个字段的情况下)的一个或多个输入字段。
如果已指定的字段确定了唯一的面组,则按组汇总和报告邻域信息。
有关使用此参数的详细信息,请参阅面邻域的工作原理。
如果要分析区域重叠关系,可以使用包括区域重叠。选中包括区域重叠后,输出表包含名为 AREA 的字段,该字段保存所分析的重叠邻域的重叠面积。如果未发现重叠,AREA 为 0。
提示:计算区域重叠关系会占用较多的系统资源,执行起来比确定重合边和结点邻域关系可能要慢许多。如果您知道数据无重叠要素或您不关心分析重叠邻域,请确保选中工具对话框中的包括区域重叠复选框或在脚本中将 area_overlap 参数设置为 NO_AREA_OVERLAP。
警告:要获取源面完全包含的邻域的记录,必须选中对话框中的包括区域重叠复选框或必须在脚本中将 area_overlap 参数设置为 AREA_OVERLAP。如果不选中包括区域重叠复选框,则输出表将不包含源面中完全包含的邻域的记录。
输出表中不包含没有相邻要素的条目。
工具对话框中的包括邻域关系的两侧复选框(脚本中的 both_sides 参数)用于控制输出中所包括的关系。要报告所有邻接关系(包括相互关系),请选中包括邻域关系的两侧 (both_sides = "BOTH_SIDES")。例如,如果 OID1 是 OID2 的邻域,则将一个条目写入输出表:OID1 具有邻域 OID2,OID2 具有邻域 OID1。如果只需要第一侧的关系,则取消选中包括邻域关系的两侧。使用上述示例,但要取消选中包括邻域关系的两侧,则在输出表中仅输入一个条目:OID1 具有邻域 OID2。
输出线性单位指定相邻要素间共享边界长度将使用的单位。默认情况下,使用的单位与输入要素坐标系所定义的单位相同。
只有选中了区域重叠参数 (area_overlap = " = "AREA_OVERLAP"),才使用输出面积单位。选中了区域重叠后,在输出面积单位参数中指定用于计算邻域的区域重叠的单位。默认情况下,使用的单位与输入要素的坐标系所定义的单位相同。
输出表包含下列字段:
- src_field - 前缀 src 表示源;该字段是按字段报告参数所使用的一个字段,例如 src_MYID。您可以获得在按字段报告参数中指定的多个此类字段。
- nbr_field - 前缀 nbr 表示邻域;该字段是按字段报告参数所使用的一个字段,例如 nbr_MYID。与 src 字段类似,您可以获得在按字段报告参数中指定的多个此类字段。
- AREA - 此字段用于存储源面和邻域面(重叠邻域)的总重叠面积。只有选中了包括区域重叠参数 (area_overlap = "AREA_OVERLAP"),输出表中才包括此字段。
- LENGTH - 此字段用于存储源面和邻域面之间重合边的总长度。
- NODE_COUNT - 此字段用于存储源面和邻域面在某一点处交叉或接触的次数。
只有在输入要素中包含了选择集时,才分析所选要素。
语法
参数 | 说明 | 数据类型 |
in_features |
输入面要素。 | Feature Layer |
out_table |
输出表。 | Table |
in_fields [in_fields,...] (可选) |
输入属性字段或字段用于确定唯一面或面组,并在输出中表示它们。 | Field |
area_overlap (可选) | 确定是否会在输出中分析和报告重叠面。
| Boolean |
both_sides (可选) | 确定是否会在输出中包括邻域关系的两侧。
| Boolean |
cluster_tolerance (可选) |
在将两个坐标系视为相同坐标系之前它们之间的最小距离。默认情况下,该距离为输入要素的 XY 容差。 | Linear unit |
out_linear_units (可选) |
用于报告两个邻域面之间重合边的总长度的单位。默认值为输入要素单位。 | String |
out_area_units (可选) |
用于报告邻域面的区域重叠的单位。默认值为输入要素单位。仅在将 area_overlap 参数设置为 AREA_OVERLAP 时才启用此参数。 | String |
代码实例
在新斯科舍省中查找每个选举区邻域。
import arcpy, sys
arcpy.env.overwriteOutput = True
arcpy.MakeFeatureLayer_management(r"C:\Data\Canada\CanadaElecDist.shp",r"Canada_ElectoralDist")
arcpy.SelectLayerByAttribute_management(r"Canada_ElectoralDist", "NEW_SELECTION", "\"PROVCODE\" = 'NS'")
print "Selected feature count: " + str(arcpy.GetCount_management(r"Canada_ElectoralDist"))
arcpy.PolygonNeighbors_analysis(r"Canada_ElectoralDist", "ENNAME", r"C:\Data\Output\NS_elec_neigh.dbf")
print arcpy.GetMessages()