私はこれを2つの別個の問題として扱います。まず、個々のラインセグメントを接続されたコンポーネントに分解する必要があります。それらすべてをデフォルト値でディゾルブするだけでは機能しません。これはグラフ理論の問題であり、必要なのは「連結成分サブグラフ」です。
これをネットワークアナリストでハッキングする方法は確かにありますが、私の好みは、グラフの問題と同じように扱うことです。ホイールを再発明せず、優れたNetworkx Pythonモジュールをインストールして、以下を試してください。
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)
2番目のステップは、dmahrが提案するディゾルブとロケーションによる選択です。
私は何度も同じようなテクニックを使いました。グラフ理論は素晴らしく、多くのGIS問題を解決します。Networkxは、これをPythonに実装するための優れたツールです。