中文

操作方法:计算要素质心

摘要

可以通过多种方式来计算要素质心。 根据计算质心所需的方式,有下列几种可能的方法:计算要素的中心 XY 坐标、使用“要素转点”工具或使用 Python 来检索质心坐标。 下面提供的说明将介绍这些方法。

过程

  • 使用“要素转点”(数据管理)工具
    该方法利用面的重心(要素的几何中心)。 对于线、面或三维要素,即质心(或重心),并且可能落在要素内或要素外。 对于多点、折线或由多部分组成的面要素类,将使用所有要素部分的加权平均中心来计算质心。
    :
    “要素转点”工具仅在 Advanced Desktop 或 ArcInfo 许可级别可用。
    “要素转点”工具用于创建包含从输入要素的代表位置生成的点的新要素类。 特定计算的算法是专用的,但是会使用两个基本概念。

    该工具使用基于重心的算法来计算多点、线或面输入的质心。 重心计算会使用几何中心模型来输出新的点要素类。 对于线、面或三维要素,即质心(或重心),并且可能落在要素内或要素外。 对于多点、折线或由多部分组成的面,将使用所有要素部分的加权平均中心进行计算。

    在工具参数中,提供一个选项用于计算落在要素边界内的质心;可通过选中“内部”复选框来启用此选项。 启用此参数将强制工具计算要素边界内部的质心,如果其最初落在边界外部,可将该点调整到边界内部被视为重心的位置。
     
  • 使用 Python 来计算和构建质心点
    在以下示例中,借助数据访问模块,可以使用 SHAPE@XY 令牌检索质心坐标。 然后即可使用这些坐标来构建点几何,并将点几何写入新的要素类。
    :
    “数据访问”游标仅适用于 ArcGIS 10.1 及更高版本。 有关版本 10.x 的备选工作流,请参阅读取几何写入几何
    代码:
    
    import arcpy
    
    input_fc = "C:\\temp\\geodatabase.gdb\\states"
    output_fc = "C:\\temp\\geodatabase.gdb\\state_centroids"
    
    cursor = arcpy.da.SearchCursor(input_fc, "SHAPE@XY")
    centroid_coords = []
    for feature in cursor:
     centroid_coords.append(feature[0])
    
    point = arcpy.Point()
    pointGeometryList = []
    
    for pt in centroid_coords:
     point.X = pt[0]
     point.Y = pt[1]
    
     pointGeometry = arcpy.PointGeometry(point)
     pointGeometryList.append(pointGeometry)
    
    arcpy.CopyFeatures_management(pointGeometryList, output_fc)

相关信息