GTFS → 公共交通機関データ モデル (GTFS To Public Transit Data Model) (公共交通機関)

サマリー

1 つ以上の「GTFS (General Transit Feed Specification) 公共交通機関データセット」を、「Network Analyst 公共交通機関データ モデル」で定義された形式で交通機関ストップ、ライン、およびスケジュールを表す一連のフィーチャクラスとテーブルに変換します。

このツールによって生成される公共交通機関データ モデルのフィーチャクラスとテーブルには次のようなものがあります。

  • Stops
  • LineVariantElements
  • Calendars
  • CalendarExceptions
  • Lines
  • LineVariants
  • Runs
  • ScheduleElements
  • Schedules

このツールから生成された出力を [公共交通機関データ モデルを道路へ接続 (Connect Public Transit Data Model To Streets)] ツールへの入力値として使用し、交通機関に対応したネットワーク データセットに必要なすべての入力値を準備することができます。 この種のネットワーク データセットを作成する完全なワークフローについては、「公共交通機関データを使用したネットワーク データセットの作成と使用」をご参照ください。

このツールから生成された出力は、[交通機関サービスの頻度を計算 (Calculate Transit Service Frequency)] ツールへの入力値として使用することもできます。

使用法

  • すべての入力 GTFS データセットのデータは同一の出力テーブルとフィーチャクラスのセットに結合されます。 一般的に、複数の入力 GTFS データセットを使用する目的は、複数の交通機関サービス プロバイダーが同一の地理エリアで営業している大都市圏をモデル化することにあります。

  • このツールは、一般的なデータの問題をチェックするために、各入力 GTFS データセットに対して検証を行います。 問題が見つかった場合、ツールは警告を出力して、そのデータセットの処理をスキップします。 ツールの出力には、正常に処理された入力 GTFS データセットからのデータのみが含まれます。 GTFS データセットの一部は正常に処理されたが、一部はデータの問題のために処理されなかった場合は、[既存のテーブルに追加] パラメーター (Python の場合は append = "APPEND") をオンにしてツールを再実行すると、データの問題を解決して、修正された GTFS データセットを既存のツールの出力に追加することができます。

  • 入力 GTFS データセットごとに、stops.txtroutes.txttrips.txt、および stop_times.txt ファイルが含まれている必要があり、加えて、calendar.txt または calendar_dates.txt ファイルのいずれか、もしくはその両方が含まれている必要があります。 存在している場合、frequencies.txt ファイルが使用されます。

  • GTFS の stop_times.txt ファイルの arrival_time および departure_time フィールドには空白値を使用できますが、Network Analyst 公共交通機関データ モデルでは、正確な時間をネットワーク データセットの公共交通機関エバリュエーターで使用することが求められます。 どの arrival_time フィールドと departure_time フィールドにも明示的な値を持たない stop_times.txt ファイルで入力 GTFS データセットの到着時間と出発時間を推定するには、[空白の停止時間を内挿] パラメーター (Python の場合は interpolate = "INTERPOLATE") をオンにします。

  • このツールは GTFS の stops.txt ファイルの stop_lat および stop_lon フィールドにある緯度と経度の値を使用して Stops フィーチャクラスを構築します。

  • GTFS の stops.txt ファイルの stop_lat フィールドと stop_lon フィールドは、ストップの緯度と経度を定義します。 ストップの location_type フィールドの値が 3 または 4 である場合、これらのフィールドに NULL を指定できます。 ただし、このツールはストップを表す地理フィーチャを作成するため、緯度や経度を持たないストップはマッピングできません。 したがって、location_type の値が 3 または 4 で、stop_lat または stop_lon が NULL 値のストップはスキップされ、ツールの出力には含まれません。

  • このツールは、交通機関での移動によって直接接続される 2 つのストップ間ごとに直線を作成して LineVariantElements フィーチャを構築します。

    注意:

    LineVariantElements フィーチャは、バスや列車などの公共交通機関の車両が進む実際の地理的経路を表すためのものではなく、交通網内の論理的な接続を表します。 LineVariantElements フィーチャは視覚化のために使用されることを意図していません。 ネットワーク データセットの公共交通機関エバリュエーターでは、公共交通機関のスケジュールを使用して、LineVariantElements フィーチャを通過するのに必要な移動時間を決定します。したがって、このフィーチャの形状および長さは重要ではありません。 必要な場合は、LineVariantElements フィーチャの形状を手動で編集できますが、このフィーチャを分割したり、マージしたりすることはできません。

  • 同じ 2 つのストップ間で、複数の GTFS ルートか、同一ルートのバリエーションがサービスを提供している場合、サービスを提供しているルートかルート バリエーションごとに 1 つの LineVariantElements フィーチャが作成されます。

    たとえば、GTFS route_id 10 と GTFS route_id 47 が両方とも同じ 2 つのストップ間を移動し、その中間に他のストップがない場合、このツールは、route_id 10 と route_id 47 用に 1 つずつ、2 つの LineVariantElements フィーチャを生成します。 これらの 2 つのライン フィーチャは地理的に一致します。

    同様に、route_id 15 が 2 つの異なる終着ステーションに乗り入れているが、すべての route_id 15 の移動が終着ステーションに関係なく特定の 2 つのストップ間を結ぶ場合、終着ステーションごとに 1 つの LineVariantElements フィーチャが作成されます。この結果、一致する 2 つの LineVariantElements フィーチャが作成されます。 このようなルート バリエーションは、通常、GTFS データセットの異なる shape_id 値に対応します。

  • 公共交通機関データ モデルでは、特定の名前を持つフィーチャクラスとテーブルが必要とされるため、公共交通機関データ モデルのフィーチャクラスとテーブルのセットは同じジオデータベースに 1 つしか含めることはできません。 ターゲット フィーチャ データセットは、公共交通機関データ モデルのフィーチャクラスを含む既存のフィーチャ データセットが存在するジオデータベースに含めることはできません。

  • ターゲット フィーチャ データセットがエンタープライズ ジオデータベースにある場合は、バージョン対応にはできません。 このツールを実行する前に、フィーチャ データセットのデータを「リコンサイルおよびポスト」し、「データのバージョン対応登録を解除」してください。

パラメーター

ラベル説明データ タイプ
入力 GTFS フォルダー

有効な GTFS データを含む 1 つ以上のフォルダー。 フォルダーごとに、GTFS の stops.txtroutes.txttrips.txt、および stop_times.txt ファイルが含まれている必要があり、加えて、calendar.txt または calendar_dates.txt ファイルのいずれか、もしくはその両方が含まれている必要があります。

Folder
ターゲット フィーチャ データセット

交通機関に対応したネットワーク データセットが作成されるフィーチャ データセットです。 このツールによって作成される Stops および LineVariantElements フィーチャクラスがこのフィーチャ データセットに配置され、このツールによって作成される出力テーブルがこのフィーチャ データセットの親ジオデータベースに配置されます。

このフィーチャ データセットはファイル ジオデータベースまたはエンタープライズ ジオデータベースのいずれかに含まれ、任意の空間参照を使用できます。 ターゲット フィーチャ データセットがエンタープライズ ジオデータベースにある場合は、バージョン対応にはできません。 ターゲット フィーチャ データセットは、公共交通機関データ モデルのフィーチャクラスを含む既存のフィーチャ データセットが存在するジオデータベースに含めることはできません。

Feature Dataset
空白の停止時間を内挿
(オプション)

公共交通機関データ モデル テーブルを作成するときに、GTFS の stop_times.txt ファイルの arrival_time フィールドと departure_time フィールドの空白値を内挿するかどうかを指定します。

  • オン - 単純なリニア内挿法を使用して空白値を内挿します。 元の GTFS データは変更されません。 元のデータに空白値がない場合、内挿は実行されません。
  • オフ - 空白値は内挿されません。 入力 GTFS データに空白値が見つかった場合、ツールは警告を出力して、GTFS データセットを処理しません。 これがデフォルトです。
Boolean
既存のテーブルに追加
(オプション)

入力 GTFS データセットを、ターゲット フィーチャ データセットとその親ジオデータベース内にある既存の公共交通機関データ モデルのフィーチャクラスおよびテーブルに追加するかどうかを指定します。

ターゲット フィーチャ データセットとその親ジオデータベースに既存の公共交通機関データ モデルのフィーチャクラスおよびテーブルが含まれていない場合、このパラメーターは非表示になります。

  • オン - データが既存のフィーチャクラスおよびテーブルに追加されます。
  • オフ - データが追加されません。 既存のフィーチャクラスおよびテーブルが上書きされます。 これがデフォルトです。
Boolean

派生した出力

ラベル説明データ タイプ
更新されたターゲット フィーチャ データセット

新しいフィーチャクラスが追加されたフィーチャ データセット。

Feature Dataset
出力ストップ

Network Analyst 公共交通機関データ モデルの Stops フィーチャクラス。

Feature Class
出力ライン バリアント エレメント

Network Analyst 公共交通機関データ モデルの LineVariantElements フィーチャクラス。

Feature Class
出力カレンダー

Network Analyst 公共交通機関データ モデルの Calendars テーブル。

Table
出力カレンダー例外

Network Analyst 公共交通機関データ モデルの CalendarExceptions テーブル。

Table
出力ライン

Network Analyst 公共交通機関データ モデルの Lines テーブル。

Table
出力ライン バリアント

Network Analyst 公共交通機関データ モデルの LineVariants テーブル。

Table
出力実行

Network Analyst 公共交通機関データ モデルの Runs テーブル。

Table
出力スケジュール エレメント

Network Analyst 公共交通機関データ モデルの ScheduleElements テーブル。

Table
出力スケジュール

Network Analyst 公共交通機関データ モデルの Schedules テーブル。

Table

arcpy.transit.GTFSToPublicTransitDataModel(in_gtfs_folders, target_feature_dataset, {interpolate}, {append})
名前説明データ タイプ
in_gtfs_folders
[in_gtfs_folders,...]

有効な GTFS データを含む 1 つ以上のフォルダー。 フォルダーごとに、GTFS の stops.txtroutes.txttrips.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 フィールドの空白値を内挿するかどうかを指定します。

  • INTERPOLATE単純なリニア内挿法を使用して空白値を内挿します。 元の GTFS データは変更されません。 元のデータに空白値がない場合、内挿は実行されません。
  • NO_INTERPOLATE空白値は内挿されません。 入力 GTFS データに空白値が見つかった場合、ツールは警告を出力して、GTFS データセットを処理しません。 これがデフォルトです。
Boolean
append
(オプション)

入力 GTFS データセットを、ターゲット フィーチャ データセットとその親ジオデータベース内にある既存の公共交通機関データ モデルのフィーチャクラスおよびテーブルに追加するかどうかを指定します。

  • APPENDデータが既存のフィーチャクラスおよびテーブルに追加されます。
  • NO_APPENDデータが追加されません。 既存のフィーチャクラスおよびテーブルが上書きされます。 これがデフォルトです。
Boolean

派生した出力

名前説明データ タイプ
updated_target_feature_dataset

新しいフィーチャクラスが追加されたフィーチャ データセット。

Feature Dataset
output_stops

Network Analyst 公共交通機関データ モデルの Stops フィーチャクラス。

Feature Class
output_line_variant_elements

Network Analyst 公共交通機関データ モデルの LineVariantElements フィーチャクラス。

Feature Class
output_calendars

Network Analyst 公共交通機関データ モデルの Calendars テーブル。

Table
output_calendar_exceptions

Network Analyst 公共交通機関データ モデルの CalendarExceptions テーブル。

Table
output_lines

Network Analyst 公共交通機関データ モデルの Lines テーブル。

Table
output_line_variants

Network Analyst 公共交通機関データ モデルの LineVariants テーブル。

Table
output_runs

Network Analyst 公共交通機関データ モデルの Runs テーブル。

Table
output_schedule_elements

Network Analyst 公共交通機関データ モデルの ScheduleElements テーブル。

Table
output_schedules

Network Analyst 公共交通機関データ モデルの Schedules テーブル。

Table

コードのサンプル

GTFSToPublicTransitDataModel の例 1 (Python ウィンドウ)

次のスクリプトは、Python ウィンドウで GTFSToPublicTransitDataModel 関数を使用する方法を示しています。

fd_path = r"E:\TransitAnalysis\TransitNetwork.gdb\TransitNetwork"
arcpy.transit.GTFSToPublicTransitDataModel([r"E:\GTFS\Agency1", r"E:\GTFS\Agency2"], fd_path)
GTFSToPublicTransitDataModel の例 2 (スタンドアロン スクリプト)

次のスタンドアロン Python スクリプトは、GTFSToPublicTransitDataModel 関数と ConnectPublicTransitDataModelToStreets 関数を併用して、交通機関に対応したネットワーク データセットを作成する方法を示しています。

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.transit.GTFSToPublicTransitDataModel(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.transit.ConnectPublicTransitDataModelToStreets(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: Yes
  • Standard: Yes
  • Advanced: Yes

関連トピック