Tôi sẽ tiếp cận điều này như hai vấn đề riêng biệt. Đầu tiên, các phân đoạn dòng riêng lẻ phải được hòa tan thành các thành phần được kết nối; chỉ cần hòa tan tất cả chúng trên một giá trị mặc định sẽ không hoạt động. Đây là một vấn đề lý thuyết đồ thị và cái chúng ta muốn là "đồ thị phụ thành phần được kết nối".
Tôi chắc chắn có một cách để hack điều này với nhà phân tích mạng, nhưng sở thích của tôi sẽ là xử lý nó giống như vấn đề đồ thị; không phát minh lại bánh xe, chỉ cần cài đặt mô-đun python Networkx tuyệt vời và thử các cách sau:
from networkx import Graph, connected_components
G = Graph()
# iterate through your feature class and build a graph
for row in featureclass:
# we need a unique representation for each edges start and end points
start = row.shape.getpart()[0]
end = row.shape.getpart()[-1]
G.add_edge(start,end,oid=row.oid)
# get the connected components
Components = connected_components(G)
# we now have a "list of lists" containing edges grouped by their component
# there's several ways to apply this to the feature class...eg
for i, connected in enumerate(Components):
# assign id = i to the group by writing it to a field for all members
# of that component (the row oid is an attribute of the edge)
Bước thứ hai sẽ là hòa tan và chọn theo vị trí theo đề xuất của dmahr
Tôi đã sử dụng một kỹ thuật tương tự nhiều lần thành công. Lý thuyết đồ thị là tuyệt vời và giải quyết nhiều vấn đề về GIS và Networkx là một công cụ tuyệt vời để thực hiện điều này trong python.