概要
1 つ以上の GTFS (General Transit Feed Specification) 公共交通機関データセットを、ネットワーク データセットの作成時に使用できる一連のフィーチャクラスとテーブルに変換します。出力フィーチャクラスとテーブルは、Network Analyst 公共交通機関データ モデルで定義されている形式でトランジット ストップ、ライン、およびスケジュールを表します。これらのデータは、ネットワーク データセットの公共交通機関エバリュエーターによる解釈が可能です。
このツールによって生成される公共交通機関データ モデルのフィーチャクラスとテーブルには次のようなものがあります。
- Stops
- LineVariantElements
- Calendars
- CalendarExceptions
- Lines
- LineVariants
- Runs
- ScheduleElements
- Schedules
このツールからの出力は、トランジット対応ネットワーク データセットに必要なすべての入力を準備する [ネットワーク データセット トランジット ソースを道路へ接続 (Connect Network Dataset Transit Sources To Streets)] ツールへの入力として使用できます。ネットワーク データセットの作成に関する完全なワークフローについては、「公共交通機関データを使用したネットワーク データセットの作成と使用」をご参照ください。
使用法
すべての入力 GTFS データセットのデータは同一の出力テーブルとフィーチャクラスのセットに結合されます。一般的に、複数の入力 GTFS データセットを使用する目的は、複数のトランジット サービス プロバイダーが同一の地理的エリアで営業している大都市圏をモデル化することにあります。
このツールは、一般的なデータの問題をチェックするために、各入力 GTFS データセットに対して整合チェックを実行します。問題が見つかった場合、ツールは警告を出力して、そのデータセットの処理をスキップします。ツールの出力には、正常に処理された入力 GTFS データセットからのデータのみが含まれます。一部の GTFS データセットが正常に処理され、一部はデータの問題のためにスキップされた場合は、[既存のテーブルへ追加] パラメーターを [True] に設定してツールを再実行することで、データの問題を解決して、修正された GTFS データセットを既存のツールの出力に追加できます。
入力 GTFS データセットごとに、stops.txt、routes.txt、trips.txt、および stop_times.txt ファイルが含まれている必要があり、加えて、calendar.txt または calendar_dates.txt ファイルのいずれか、もしくはその両方が含まれている必要があります。存在している場合、frequencies.txt ファイルが使用されます。
GTFS の stop_times.txt ファイルの arrival_time および departure_time フィールドには空白値を使用できますが、Network Analyst 公共交通機関データ モデルでは、正確な時間をネットワーク データセットの公共交通機関エバリュエーターで使用することが求められます。[空白の停止時間を内挿] パラメーターを [True] に設定して、すべての arrival_time および departure_time フィールドに明確な値がない stop_times.txt ファイルで、入力 GTFS データセットの到着時間と出発時間を推定します。
このツールは GTFS の stops.txt ファイルの stop_lat および stop_lon フィールドにある緯度と経度の値を使用して Stops フィーチャクラスを構築します。
このツールは、交通機関での移動によって直接接続される 2 つのストップ間ごとに直線を作成して LineVariantElements フィーチャを構築します。
メモ:
LineVariantElements フィーチャは、バスや列車などの公共交通機関の車両が進む実際の地理的経路を表すためのものではなく、交通網内の論理的な接続を表します。LineVariantElements フィーチャは視覚化のために使用されることを意図していません。ネットワーク データセットの公共交通機関エバリュエーターでは、公共交通機関のスケジュールを使用して、LineVariantElements フィーチャを通過するのに必要な移動時間を決定します。したがって、このフィーチャの形状および長さは重要ではありません。必要な場合は、LineVariantElements フィーチャの形状を手動で編集できますが、このフィーチャを分割したり、マージしたりすることはできません。
同じ 2 つのストップ間で複数の GTFS ルートがサービスを提供している場合、サービスを提供している GTFS route_id ごとに 1 つの LineVariantElements フィーチャが作成されます。たとえば、バス 10 とバス 47 が両方とも同じ 2 つのストップ間を移動し、その中間に他のストップがない場合、このツールは、バス 10 とバス 47 用に 1 つずつ、2 つの LineVariantElements フィーチャを生成します。これらの 2 つのライン フィーチャは地理的に一致します。
公共交通機関データ モデルでは、特定の名前を持つフィーチャクラスとテーブルが必要とされるため、公共交通機関データ モデルのフィーチャクラスとテーブルのセットは同じジオデータベースに 1 つしか含めることはできません。ターゲット フィーチャ データセットは、公共交通機関データ モデルのフィーチャクラスを含む別のフィーチャ データセットがすでに存在するジオデータベースに含めることはできません。
ターゲット フィーチャ データセットがエンタープライズ ジオデータベースにある場合は、バージョン対応にはできません。このツールを実行する前に、フィーチャ データセットのデータをリコンサイルおよびポストし、データのバージョン対応登録を解除してください。
構文
arcpy.conversion.GTFSToNetworkDatasetTransitSources(in_gtfs_folders, target_feature_dataset, {interpolate}, {append})
パラメーター | 説明 | データ タイプ |
in_gtfs_folders [in_gtfs_folders,...] | 有効な GTFS データを含む 1 つ以上のフォルダー。フォルダーごとに、GTFS の stops.txt、routes.txt、trips.txt、および stop_times.txt ファイルが含まれている必要があり、加えて、calendar.txt または calendar_dates.txt ファイルのいずれか、もしくはその両方が含まれている必要があります。 | Folder |
target_feature_dataset | 交通機関に対応したネットワーク データセットが作成されるフィーチャ データセットです。このツールによって作成される Stops および LineVariantElements フィーチャクラスがこのフィーチャ データセットに配置され、このツールによって作成される出力テーブルがこのフィーチャ データセットの親ジオデータベースに配置されます。 このフィーチャ データセットはファイル ジオデータベースまたはエンタープライズ ジオデータベースのいずれかに含まれ、任意の空間参照を使用できます。ターゲット フィーチャ データセットがエンタープライズ ジオデータベースにある場合は、バージョン対応にはできません。ターゲット フィーチャ データセットは、公共交通機関データ モデルのフィーチャクラスを含む別のフィーチャ データセットがすでに存在するジオデータベースに含めることはできません。 | Feature Dataset |
interpolate (オプション) | 公共交通機関データ モデル テーブルを作成するときに、GTFS の stop_times.txt ファイルの arrival_time および departure_time フィールドにある空白値を内挿するかどうかを指定します。
| Boolean |
append (オプション) | 入力 GTFS データセットを、ターゲット フィーチャ データセットとその親ジオデータベース内にある既存の公共交通機関データ モデルのフィーチャクラスおよびテーブルに追加するかどうかを指定します。
| Boolean |
派生した出力
名前 | 説明 | データ タイプ |
updated_target_feature_dataset | 新しいフィーチャクラスが追加されたフィーチャ データセット。 | フィーチャ データセット |
output_stops | Network Analyst 公共交通機関データ モデルの Stops フィーチャクラス。 | フィーチャ クラス |
output_line_variant_elements | Network Analyst 公共交通機関データ モデルの LineVariantElements フィーチャクラス。 | フィーチャ クラス |
output_calendars | Network Analyst 公共交通機関データ モデルの Calendars テーブル。 | テーブル |
output_calendar_exceptions | Network Analyst 公共交通機関データ モデルの CalendarExceptions テーブル。 | テーブル |
output_lines | Network Analyst 公共交通機関データ モデルの Lines テーブル。 | テーブル |
output_line_variants | Network Analyst 公共交通機関データ モデルの LineVariants テーブル。 | テーブル |
output_runs | Network Analyst 公共交通機関データ モデルの Runs テーブル。 | テーブル |
output_schedule_elements | Network Analyst 公共交通機関データ モデルの ScheduleElements テーブル。 | テーブル |
output_schedules | Network Analyst 公共交通機関データ モデルの Schedules テーブル。 | テーブル |
コードのサンプル
次のスクリプトは、Python ウィンドウで GTFSToNetworkDatasetTransitSources ツールを使用する方法を示しています。
fd_path = r"E:\TransitAnalysis\TransitNetwork.gdb\TransitNetwork"
arcpy.conversion.GTFSToNetworkDatasetTransitSources([r"E:\GTFS\Agency1", r"E:\GTFS\Agency2"], fd_path)
次のスタンドアロン 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: はい