操作方法
在 ArcGIS Pro 中,在包含相似属性的面内放置点对于各种空间分析(例如空间聚合和数据集成)非常重要。 公共属性通常是指数据集内要素共享的字段或属性。

本文提供了在 ArcGIS Pro 中使用 ArcPy 将点放置在具有公共属性的面中的工作流。
Note: This workflow requires a full script to run in the ArcGIS Pro Python window. All the indents are to be kept as portrayed in the code block.
Note: This workflow creates a new point feature in the geodatabase that is not added into the map.
import arcpy import os def place_points_inside_polygons(input_polygon_fc, output_point_fc, common_attribute_field): arcpy.management.CreateFeatureclass( out_path=os.path.dirname(output_point_fc), out_name=os.path.basename(output_point_fc), geometry_type="POINT", spatial_reference=input_polygon_fc )
arcpy.management.AddField(output_point_fc, common_attribute_field, "TEXT")
with arcpy.da.InsertCursor(output_point_fc, ["SHAPE@", common_attribute_field]) as cursor: with arcpy.da.SearchCursor(input_polygon_fc, ["SHAPE@", common_attribute_field]) as search_cursor: for row in search_cursor: polygon_geom = row[0] common_attribute_value = row[1] point_inside_polygon = polygon_geom.centroid cursor.insertRow([point_inside_polygon, common_attribute_value])
input_polygon_fc = r"<pathToPolygonFc>" output_point_fc = r"<pathToOriginalPointFc>" common_attribute_field = "<fieldName>"
place_points_inside_polygons(input_polygon_fc, output_point_fc, common_attribute_field)
以下代码块演示了完整脚本。
import arcpy import os def place_points_inside_polygons(input_polygon_fc, output_point_fc, common_attribute_field): arcpy.management.CreateFeatureclass( out_path=os.path.dirname(output_point_fc), out_name=os.path.basename(output_point_fc), geometry_type="POINT", spatial_reference=input_polygon_fc ) arcpy.management.AddField(output_point_fc, common_attribute_field, "TEXT") with arcpy.da.InsertCursor(output_point_fc, ["SHAPE@", common_attribute_field]) as cursor: with arcpy.da.SearchCursor(input_polygon_fc, ["SHAPE@", common_attribute_field]) as search_cursor: for row in search_cursor: polygon_geom = row[0] common_attribute_value = row[1] point_inside_polygon = polygon_geom.centroid cursor.insertRow([point_inside_polygon, common_attribute_value]) input_polygon_fc = r"C:\Users\Documents\ArcGIS\Projects\MyProject40\MyProject40.gdb\Polygon" output_point_fc = r"C:\Users\Documents\ArcGIS\Projects\MyProject40\MyProject40.gdb\Pointsss" common_attribute_field = "Distance" place_points_inside_polygons(input_polygon_fc, output_point_fc, common_attribute_field)
下图显示了使用 ArcPy 放置在具有公共属性的面中的点。

文章 ID: 000032318
获取来自 ArcGIS 专家的帮助
立即开始聊天