HOW TO
In ArcGIS Pro, placing points within polygons containing similar attributes is important for a variety of spatial analysis such as spatial aggregation and data integration. A common attribute typically refers to a field or property shared by features within a dataset.
This article provides the workflow to place a point in a polygon with a common attribute using ArcPy in ArcGIS Pro.
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)
The code block below demonstrates the full script.
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)
The image below shows the point placed in the polygon with a common attribute using ArcPy.
Get help from ArcGIS experts
Download the Esri Support App