import arcpy, os points = "merge_simplified_new" polyons = " intersect_5x5_reprojection " out_table = "C:\Users\lcdc7\Desktop\ArcGIS\Output" in_features = [points, polyons] intersect_points = "in_memory/intersect_points" arcpy.analysis。Intersect(in_features, intersect_points) fields = ["Grid_ID", "Name"] point_data = [arcpy.da中的行与行。搜索Cursor(intersect_points , fields)] grid_ids = list(set([p[0] for p in point_data])) try: arcpy.management.Delete(out_table) except: pass arcpy.management.CreateTable(os.path.dirname(out_table), os.path.basename(out_table)) arcpy.management.AddField(out_table, "Grid_ID", "LONG") arcpy.management.AddField(out_table, "Count", "LONG") arcpy.management.AddField(out_table, "Name", "Text") with arcpy.da.InsertCursor(out_table, ["Grid_ID", "Count", "Name"]) as cursor: for grid_id in grid_ids: names_in_polygon = [p[1] for p in point_data if p[0] == grid_id] count = len(names_in_polygon) unique_names = ", ".join(set(names_in_polygon)) cursor.insertRow([grid_id, count, unique_names]) p.s. This is the final code I use.
...查看更多