概要
交通機関ストップを道路フィーチャに接続して、交通機関に対応したネットワーク データセットで使用します。このツールは、Network Analyst 公共交通機関データ モデルで定義された StopsOnStreets および StopConnectors フィーチャクラスを作成し、「公共交通機関データを含むネットワーク データセットの作成および使用」に示された交通機関ネットワーク データセットを作成するための大規模なワークフローの一部として実行されます。
ネットワーク データセット内で公共交通機関による移動を現実に即してモデル化するには、歩行者が交通機関ストップまで徒歩で移動し、交通機関を利用した後、目的地まで徒歩で移動できるようにネットワークを設定する必要があります。公共交通機関データと道路データの両方をネットワークに含め、管理された方法で交通機関ストップおよびラインを道路に接続します。歩行者は各ストップでの交通機関ラインの乗降のみが可能であり、それぞれのストップを道路に接続する必要があります。このツールを使用すると、このような接続が確保されます。
このツールは、Stops フィーチャクラス (ターゲット フィーチャ データセット内に存在する必要がある) のコピーを作成し、コピーした Stops フィーチャを入力道路フィーチャにスナップして、指定の検索範囲および式の対象になるようにします。次に、このツールは、各ストップとスナップされたコピーの間に直線を生成して StopConnectors フィーチャを作成します。これで、ストップの場所とストップが道路フィーチャにスナップされた場所の間に接続が作成されます。ネットワーク データセットの有効な接続性を確保するために、入力道路フィーチャのスナップされたストップの場所に頂点が追加されます。
使用法
このツールで使用されるターゲット フィーチャ データセットがすでに存在し、Stops というポイント フィーチャクラスと Network Analyst 公共交通機関データ モデルで示されたスキーマがこのデータセットに含まれている必要があります。有効な Stops フィーチャクラスを作成するには、[GTFS → ネットワーク データセット トランジット ソース (GTFS To Network Dataset Transit Sources)] ツールを使用します。
このツールを実行すると、ターゲット フィーチャ データセット内の公共交通機関ストップが道路フィーチャにスナップされます。編集操作と同様に、エラーが発生しないようにすべてのフィーチャを同じ空間参照に配置することが最適です。ターゲット フィーチャ データセットと入力道路フィーチャの空間参照を同じにすることをお勧めします。
このツールを実行すると、入力道路フィーチャが変更されます。StopsOnStreets フィーチャが道路と交差する場所に頂点が追加されます。道路データを変更したくない場合は、このツールを実行する前に、道路データのコピーを作成しておきます。
入力 Stops フィーチャクラスに親ステーション (GStopType の値が 1 のフィーチャ) が含まれている場合は、親ステーションが道路に接続され、子ストップが親ステーションに接続されます。親ステーションに接続されたストップは、道路に直接接続されません。
入力 Stops フィーチャクラスにステーション エントランス (GStopType の値が 2 のフィーチャ) が含まれている場合は、ステーション エントランスが道路にスナップされ、親ステーションがステーション エントランスに接続されます。この状況では、ステーション エントランスが道路と一致し、ConnectorType の値が 2 の StopConnectors ラインで親ステーションがステーション エントランスに接続され、ConnectorType の値が 1 の StopConnectors ラインでストップが親ステーションに接続されます。
このツールを実行すると、Stops フィーチャクラスが変更されることがあります。GStopType の値が 2 のストップ フィーチャ (ステーション エントランスを表す) は削除される場合があります。これらのストップ フィーチャは代わりに出力 StopsOnStreets フィーチャクラスに挿入され、道路からステーション エントランスを通ってストップまでの正確な接続がモデル化されます。ストップと空間的に一致する親ステーションも削除されることがあります。
このツールをスタンドアロン Python で実行した際に、入力 Stops フィーチャクラスに親ステーションまたはステーション エントランスが含まれていると、警告メッセージ 001059 がコンソールに表示される場合があります。この警告メッセージは予期されたメッセージであり、問題を示しているわけではありません。
構文
arcpy.conversion.ConnectNetworkDatasetTransitSourcesToStreets(target_feature_dataset, in_streets_features, search_distance, expression)
パラメーター | 説明 | データ タイプ |
target_feature_dataset | 交通機関に対応したネットワーク データセットが作成されるフィーチャ データセットです。このフィーチャ データセットがすでに存在し、Stops というポイント フィーチャクラスと Network Analyst 公共交通機関データ モデルで示されたスキーマがこのデータセットに含まれている必要があります。有効な Stops フィーチャクラスを作成するには、[GTFS → ネットワーク データセット トランジット ソース (GTFS To Network Dataset Transit Sources)] ツールを使用します。 メモ:このツールを実行すると、Stops フィーチャクラスが変更されることがあります。GStopType の値が 2 のストップ フィーチャ (ステーション エントランスを表す) は削除される場合があります。これらのストップ フィーチャは代わりに出力 StopsOnStreets フィーチャクラスに挿入され、道路からステーション エントランスを通ってストップまでの正確な接続がモデル化されます。ストップと空間的に一致する親ステーションも削除されることがあります。 | Feature Dataset |
in_streets_features | 交通機関ストップおよびラインの接続先となる道路のポリライン フィーチャクラスです。道路を徒歩で移動する歩行者をモデル化する場合、この道路フィーチャクラスは、交通機関に対応したネットワーク データセットで使用するフィーチャクラスと同じでなければなりません。このツールの実行時にこのフィーチャクラスをターゲット フィーチャ データセットに含める必要はありませんが、ネットワーク データセットを作成する際には、このフィーチャクラスをターゲット フィーチャ データセットに含める必要があります。 メモ:このツールを実行すると、入力道路フィーチャが変更されます。StopsOnStreets フィーチャが道路と交差する場所に頂点が追加されます。道路データを変更したくない場合は、このツールを実行する前に、道路データのコピーを作成しておきます。 | Feature Layer |
search_distance | 交通機関ストップを入力道路フィーチャにスナップする場合の検索範囲です。検索範囲外のストップはスナップされないため、道路に接続されません。検索範囲を狭めると、遠く離れた道路にストップがスナップされなくなりますが、必要な場合にストップをスナップできない可能性が高くなります。検索範囲を広げると、スナップされる可能性のあるストップの数が増えますが、道路データを編集して修正する必要のあるエラーが発生することがあります。特定のストップの検索範囲内に道路フィーチャが存在しない場合は、出力 StopsOnStreets フィーチャが道路にスナップされず、Stops の対応するフィーチャと一致するため、ネットワーク データセット内の該当する場所で接続性が低下する可能性があります。 デフォルト値は 100 メートルです。 | Linear Unit |
expression | 入力道路フィーチャ レコードのサブセットの選択に使用する SQL 式です。この式を満たした道路フィーチャにのみ交通機関ストップがスナップされます。たとえば、この式を使用して、歩行者の移動が禁止されている道路にストップがスナップされないようにすることができます。 | SQL Expression |
派生した出力
名前 | 説明 | データ タイプ |
updated_target_feature_dataset | 新しいフィーチャクラスが追加されたフィーチャ データセットまたは既存のフィーチャクラスが更新されたフィーチャ データセットです。 | フィーチャ データセット |
updated_in_streets_features | このツールで修正された入力道路フィーチャクラスです。 | フィーチャクラス |
updated_in_stops | ターゲット フィーチャ データセット内にあり、このツールで修正された Stops フィーチャクラスです。 | フィーチャクラス |
output_stops_on_streets | Stops フィーチャのコピーを入力道路フィーチャにスナップして作成された Network Analyst 公共交通機関データ モデルの StopsOnStreets フィーチャクラスです。 | フィーチャクラス |
output_stop_connectors | 元のストップの場所とそのストップが道路フィーチャにスナップされた場所の間に直線を描画して作成された Network Analyst 公共交通機関データ モデルの StopConnectors フィーチャクラスです。 | フィーチャクラス |
コードのサンプル
次のスクリプトは、Python ウィンドウで ConnectNetworkDatasetTransitSourcesToStreets ツールを使用する方法を示しています。
fd_path = r"E:\TransitAnalysis\TransitNetwork.gdb\TransitNetwork"
streets = os.path.join(fd_path, "Streets")
where = "PedestriansAllowed = 1"
arcpy.conversion.ConnectNetworkDatasetTransitSourcesToStreets(fd_path, streets, "100 meters", where)
次のスタンドアロン Python スクリプトは、[GTFSToNetworkDatasetTransitSources] ツールと [ConnectNetworkDatasetTransitSourcesToStreets] ツールを併用して、交通機関に対応したネットワーク データセットを作成する方法を示しています。
import os
import arcpy
arcpy.CheckOutExtension("network")
gtfs_folders = [
r"E:\GTFS\Agency1",
r"E:\GTFS\Agency2"
]
streets_orig = r"E:\Data\StreetData.gdb\Streets"
working_folder = r"E:\TransitAnalysis"
nd_template = os.path.join(working_folder, "TransitNetworkTemplate.xml")
gdb_name = "TransitNetwork.gdb"
out_gdb = os.path.join(working_folder, gdb_name)
fd_name = "TransitNetwork"
fd_path = os.path.join(out_gdb, fd_name)
streets = os.path.join(fd_path, "Streets")
nd_name = "TransitNetwork_ND"
nd_path = os.path.join(fd_path, nd_name)
# Create a file geodatabase and feature dataset to store the network dataset
arcpy.management.CreateFileGDB(working_folder, gdb_name)
arcpy.management.CreateFeatureDataset(out_gdb, fd_name, arcpy.SpatialReference(4326))
# Copy the streets data into the feature dataset so it can be used by the network dataset
# If the original streets are not in the same spatial reference as the feature dataset, you might
# need to use the Project tool instead of Copy.
arcpy.management.Copy(streets_orig, streets)
# Convert the GTFS dataset into public transit data model tables and feature classes
arcpy.conversion.GTFSToNetworkDatasetTransitSources(gtfs_folders, fd_path)
# Connect the transit stops to the streets and create the rest of the data model feature classes
# Use an expression to connect transit stops only to streets where pedestrians are allowed.
where = "PedestriansAllowed = 1"
arcpy.conversion.ConnectNetworkDatasetTransitSourcesToStreets(fd_path, streets, "100 meters", where)
# Create the network dataset from a template
arcpy.na.CreateNetworkDatasetFromTemplate(nd_template, fd_path)
# Build the network dataset
arcpy.na.BuildNetwork(nd_path)
環境
ライセンス情報
- Basic: いいえ
- Standard: はい
- Advanced: はい