Dữ liệu của tôi bao gồm hai featureclass:
- Điểm = điểm đại diện cho cây
- Đa giác = Đa giác biểu thị% diện tích tán theo diện tích. Mỗi đa giác trong FC có phép đo% tán trong các thuộc tính.
Tôi đang cố gắng để thực hiện như sau:
- Chọn các điểm bên dưới các tính năng đa giác
- Đối với các điểm dưới mỗi đa giác, xóa X% số điểm dựa trên thuộc tính đa giác
Ảnh chụp màn hình (Hình 1) hiển thị một công cụ chỉ ModelBuilder có tên là Iterate Feature Selection. Phương thức kịch bản Python chính xác để lặp qua các tính năng trong một lớp đối tượng để chuyển tính năng này sang lệnh SelectLayerByLocation_man quản lý là gì?
Hình 2 cho thấy đầu ra của lựa chọn theo vị trí. Tất cả 4 lớp đều giống nhau, đây sẽ là một vấn đề khi tôi thử và xóa các điểm bằng phép đo% tán.
Đây là những gì tôi đã cố gắng cho đến nay:
import arcpy
from arcpy import env
env.overwriteOutput = True
env.workspace = r'C:\temp_model_data\OutputData'
outWorkspace = env.workspace
# The polygons have canopy % data in attributes
polygons = r'C:\temp_model_data\CanopyPercentages.shp'
points = r'C:\temp_model_data\points_20_2012.shp'
if arcpy.Exists("pointsLayer"):
print "pointsLayer exists already"
else:
arcpy.MakeFeatureLayer_management (points, "pointsLayer")
print "pointsLayer created"
count = 1
#Create a search cursor to step through the polygon features
polys = arcpy.da.SearchCursor(polygons, ["OID@", "SHAPE@"])
for poly in polys:
# Create a name for the polygon features
count = count + 1
featureName = "polygon_" + str(count)
print featureName
# Select points that lie under polygons
arcpy.SelectLayerByLocation_management('pointsLayer', 'intersect', polygons)
arcpy.SaveToLayerFile_management('pointsLayer', outWorkspace + featureName + ".lyr", "ABSOLUTE")
# Add the random point selection script here...
# Delete selected points within each polygon based on the % canopy cover...
Hình 1
Hình 2