참조

본 문서에는 GTFS 데이터 세트를 구성하는 파일의 형식과 구조가 정의되어 있습니다.

목차

  1. 용어 정의
  2. 필드 유형
  3. 데이터 세트 파일
  4. 파일 요구사항
  5. 필드 정의

용어 정의

이 섹션에서는 이 문서 전체에서 사용되는 용어를 정의합니다.

  • 데이터 세트: 이 사양 참조에서 정의하는 전체 파일 집합입니다. 데이터 세트를 변경하면 새로운 버전의 데이터 세트가 생성됩니다. 데이터 세트는 zip 파일 이름을 포함해 공개 영구 URL로 게시해야 합니다(예: https://www.agency.org/gtfs/gtfs.zip).
  • 레코드: 대중교통 기관, 정류장, 경로 같은 단일 개체를 설명하는 여러 필드 값으로 구성된 기본 데이터 구조입니다. 레코드는 표에서 행으로 표현됩니다.
  • 필드: 객체 또는 개체의 속성입니다. 표에서는 열로 표현됩니다.
  • 필드 값: 각 필드에 입력되는 값입니다. 표에서는 단일 셀로 표현됩니다.
  • 필수: 필수 필드는 데이터 세트에 반드시 포함되어야 하며, 레코드마다 필수 필드에 값을 입력해야 합니다. 일부 필수 필드에는 빈 문자열을 입력할 수 있습니다(이 사양에 빈 문자열로 표시됨). 빈 문자열을 입력하려면 해당 필드의 쉼표 사이에 입력할 텍스트를 생략하면 됩니다.
  • 선택: 이 필드는 데이터 세트에서 생략해도 됩니다. 선택 열이 포함된 경우 해당 필드의 일부 입력 값이 빈 문자열일 수 있습니다. 빈 문자열을 입력하려면 해당 필드의 쉼표 사이에 입력할 텍스트를 생략하면 됩니다. 생략된 필드는 완전히 빈 필드와 같습니다.
  • 조건부 필수: 특정 조건에서만 필요한 필드 또는 파일이며, 조건은 필드 또는 파일 설명에 나와 있습니다. 이러한 조건에 해당하지 않으면 조건부 필드 또는 파일이 선택사항으로 처리됩니다.
  • 서비스 요일: 경로 일정을 표시하는 데 사용하는 기간입니다. 서비스 요일에 대한 정확한 정의는 기관마다 다르기는 하지만, 캘린더의 요일과 일치하지 않는 경우가 많습니다. 서비스가 시작되어 다음 날에 종료되면 서비스 요일이 24:00:00을 초과할 수 있습니다. 예를 들어 금요일 08:00:00부터 토요일 02:00:00까지 운영되는 서비스는 당일 08:00:00부터 26:00:00까지 운영되는 것으로 표시될 수 있습니다.

필드 유형

  • 색상: 6자리 16진수로 인코딩되는 색상입니다. https://htmlcolorcodes.com을 참고해 유효한 값을 생성하세요. 단, 맨 앞의 '#'은 입력하지 않습니다.
    예를 들어 흰색은 FFFFFF, 검은색은 000000, NYMTA의 A, C, E 선은 0039A6입니다.
  • 통화 코드: ISO 4217의 알파벳순 통화 코드입니다. 현재 통화 목록은 https://ko.wikipedia.org/wiki/ISO_4217#Active_codes를 참고하세요.
    예를 들어 캐나다 달러는 CAD, 유로는 EUR, 일본 엔은 JPY입니다.
  • 날짜: YYYYMMDD 형식의 서비스 요일입니다. 서비스 요일의 시간이 24:00:00를 초과할 수 있으므로 서비스 요일에는 익일에 대한 정보가 포함되는 경우가 많습니다.
    예를 들어 2018년 9월 13일은 20180913입니다.
  • 이메일: 이메일 주소입니다.
    예: example@example.com
  • 열거형: '설명' 열에서 사전 정의된 상수 집합의 옵션입니다.
    예를 들어 route_type 필드에는 트램을 나타내는 0과 지하철을 나타내는 1이 포함됩니다.
  • ID: ID 필드 값은 탑승자에게는 표시되지 않는 내부 ID로, UTF-8 문자 시퀀스입니다. 인쇄 가능한 ASCII 문자만 사용하는 것이 좋습니다. TXT 파일 하나에서 정의한 ID를 다른 TXT 파일에서 참조하는 경우도 많습니다.
    예를 들어 stops.txtstop_id 필드는 ID입니다. stop_times.txtstop_id 필드는 stops.stop_id를 참조하는 ID입니다.
  • 언어 코드: IETF BCP 47 언어 코드입니다. IETF BCP 47은 http://www.rfc-editor.org/rfc/bcp/bcp47.txthttp://www.w3.org/International/articles/language-tags/를 참고하세요.
    예를 들어 영어는 en이고, 미국식 영어는 en-US이며, 독일어는 de입니다.
  • 위도: 십진법 각도로 표기하는 WGS84 위도입니다. 값은 -90.0 이상, 90.0 이하여야 합니다.
    예를 들어 로마의 콜로세움 경기장 위도는 41.890169입니다.
  • 경도: 십진법 각도로 표기되는 WGS84 경도입니다. 값은 -180.0 이상, 180.0 이하여야 합니다.
    예를 들어 로마의 콜로세움 경기장 경도는 12.492269입니다.
  • 비음수 부동 소수: 0 이상의 부동 소수점 수입니다.
  • 비음수 정수: 0 이상의 정수입니다.
  • 전화번호: 전화번호입니다.
  • 시간: HH:MM:SS 형식으로 표기하는 시간으로 H:MM:SS 형식도 가능합니다. 시간은 서비스 요일의 '정오 - 12시'부터 측정됩니다. 이 시간은 일광 절약 시간이 적용되는 날이 아니면 자정에 해당합니다. 자세한 내용은 가이드라인 도움말을 참고하세요. 자정 이후의 시간을 입력하려면 이동 일정이 시작되는 요일의 현지 시간으로 24:00:00보다 큰 값을 HH:MM:SS 형식으로 입력하세요.
    예를 들어 2:30 PM은 14:30:00이고, 익일 1:35 AM은 25:35:00입니다.
  • 텍스트: 사람이 읽을 수 있도록 표시되는 UTF-8 문자의 문자열입니다.
  • 시간대: https://www.iana.org/time-zones의 TZ 시간대입니다. 시간대 이름에는 공백 문자가 포함되지 않지만 밑줄은 포함될 수 있습니다. 유효한 값 목록은 http://en.wikipedia.org/wiki/List_of_tz_zones를 참고하세요.
    예: Asia/Tokyo, America/Los_Angeles, Africa/Cairo
  • URL: http:// 또는 https://를 포함하는 정규화된 URL을 의미하며, 이때 URL의 특수문자는 올바르게 이스케이프 처리되어야 합니다. 정규화된 URL 값을 만드는 방법에 대한 설명은 http://www.w3.org/Addressing/URL/4_URI_Recommentations.html을 참고하세요.

데이터 세트 파일

이 사양에서는 다음과 같은 파일을 정의합니다.

파일 이름 필수 여부 정의
agency.txt 필수 이 데이터 세트에 나온 서비스를 제공하는 대중교통 기관입니다.
stops.txt 필수 탑승자가 차량에 승차하거나 차량에서 하차하는 정류장입니다. 역과 역 입구를 정의하기도 합니다.
routes.txt 필수 대중교통 경로입니다. 경로는 탑승자에게 단일 서비스로 표시되는 이동 모음입니다.
trips.txt 필수 각 경로에 대한 이동입니다. 이동이란 특정 기간에 정류장 2곳 이상을 순차적으로 경유하는 것을 의미합니다.
stop_times.txt 필수 차량이 각 이동마다 정류장에 도착하고 출발하는 시간입니다.
calendar.txt 조건부 필수 시작일과 종료일을 기록한 주간 일정을 바탕으로 지정된 서비스 날짜입니다. calendar_dates.txt에 모든 서비스 날짜가 정의되어 있지 않다면 이 파일은 반드시 있어야 합니다.
calendar_dates.txt 조건부 필수 calendar.txt에 정의된 서비스의 예외사항입니다. calendar.txt가 생략되었다면 calendar_dates.txt는 필수이며 서비스 날짜를 모두 포함해야 합니다.
fare_attributes.txt 선택 대중교통 기관의 경로에 대한 요금 정보입니다.
fare_rules.txt 선택 요금을 운행 일정에 적용하는 규칙입니다.
shapes.txt 선택 차량 이동 경로를 매핑하는 규칙으로, 경로 정렬이라고도 합니다.
frequencies.txt 선택 운행 간격 기반 서비스의 운행 간격(이동 간 시간)이거나 고정된 일정 서비스의 압축된 표현입니다.
transfers.txt 선택 경로 간 환승 지점의 연결 방식에 대한 규칙입니다.
pathways.txt 선택 역 내 여러 장소를 연결하는 통로입니다.
levels.txt 선택 역 내의 층수입니다.
feed_info.txt 조건부 필수 게시자, 버전, 만료 정보를 포함한 데이터 세트 메타데이터입니다.
translations.txt 선택 대중교통 기관의 번역된 정보입니다.
attributions.txt 선택 데이터 세트에 적용되는 속성을 지정합니다.

파일 요구사항

다음 요구사항은 데이터 세트 파일의 형식 및 내용에 적용됩니다.

  • 모든 파일은 쉼표로 구분된 텍스트로 저장해야 합니다.
  • 각 파일의 첫 번째 줄에 필드 이름이 포함되어야 합니다. 필드 정의 섹션의 각 하위 섹션은 GTFS 데이터 세트의 파일 중 하나에 해당하며, 해당 파일에서 사용할 수 있는 필드 이름을 포함하고 있습니다.
  • 모든 필드 이름은 대소문자를 구분합니다.
  • 필드 값에 탭, 캐리지 리턴 또는 새로운 줄이 포함될 수 없습니다.
  • 따옴표 또는 쉼표가 포함된 필드 값은 따옴표 내에 포함되어야 합니다. 또한 필드 값의 각 따옴표 앞에 따옴표를 사용해야 합니다. 이는 Microsoft Excel에서 쉼표로 구분된 CSV 파일을 출력하는 방식과 일치합니다. CSV 파일 형식에 대해 자세히 알아보려면 http://tools.ietf.org/html/rfc4180을 참고하세요. 다음은 필드 값이 CSV 파일에서 어떻게 표시되는지를 보여주는 예입니다.
    • 원본 필드 값: Contains "quotes", commas and text
    • CSV 파일의 필드 값: "Contains ""quotes"", commas and text"
  • 필드 값에 HTML 태그, 주석 또는 이스케이프 시퀀스를 포함해서는 안 됩니다.
  • 필드 또는 필드 이름 사이에 있는 여분의 공백을 제거합니다. 많은 파서는 공백을 값의 일부로 간주하여 오류를 야기할 수 있습니다.
  • 각 줄은 CRLF 또는 LF 줄바꿈 문자로 끝나야 합니다.
  • 모든 유니코드 문자를 지원하려면 파일을 UTF-8로 인코딩해야 합니다. 유니코드 바이트 순서 표시(BOM) 문자가 포함된 파일을 사용할 수 있습니다. BOM 문자 및 UTF-8에 대한 자세한 내용은 http://unicode.org/faq/utf_bom.html#BOM을 참고하세요.
  • 데이터 세트 파일은 모두 함께 압축되어야 합니다.

필드 정의

agency.txt

파일: 필수

필드 이름 유형 필수 여부 설명
agency_id ID 조건부 필수 대중교통 브랜드를 식별합니다. 대부분의 경우 브랜드는 대중교통 기관과 동일합니다. 하지만 단일 기관에서 다수의 개별 서비스를 운영하는 경우 기관과 브랜드가 구분되기도 합니다. 이 문서에서는 '브랜드' 대신 '기관'이라는 용어를 사용합니다. 데이터 세트에는 여러 기관의 데이터가 포함될 수 있습니다. 데이터 세트에 여러 대중교통 기관의 데이터가 있다면 이 필드는 필수지만, 그렇지 않다면 선택사항입니다.
agency_name 텍스트 필수 대중교통 기관의 전체 이름입니다.
agency_url URL 필수 대중교통 기관의 URL입니다.
agency_timezone 시간대 필수 대중교통 기관이 위치한 지역의 시간대입니다. 여러 기관이 데이터 세트에 지정되어 있다면 각 기관은 동일한 agency_timezone을 가져야 합니다.
agency_lang 언어 코드 선택 대중교통 기관에서 사용하는 기본 언어입니다. 이 필드는 GTFS 사용자가 데이터 세트의 대문자 사용 규칙 및 다른 언어별 설정을 선택하는 데 도움이 됩니다.
agency_phone 전화번호 선택 지정된 기관의 음성 전화번호입니다. 이 필드는 기관의 서비스 지역에서 일반적으로 사용되는 형식의 전화번호를 나타내는 문자열 값입니다. 번호의 자릿수를 그룹화하려면 구두점을 포함할 수 있으며 포함해야 합니다. 다이얼 가능 텍스트(예: TriMet의 '503-238-RIDE')는 허용되지만 필드에는 다른 설명 텍스트가 포함되지 않아야 합니다.
agency_fare_url URL 선택 탑승자가 해당 기관의 티켓이나 기타 요금 수단을 온라인으로 구매할 수 있는 웹페이지의 URL입니다.
agency_email 이메일 선택 기관의 고객 서비스 부서에서 적극적으로 모니터링하는 이메일 주소입니다. 이 이메일 주소는 대중교통 탑승자가 기관의 고객 서비스 담당자에게 직접 연락할 수 있는 연락처여야 합니다.

stops.txt

파일: 필수

필드 이름 유형 필수 여부 설명
stop_id ID 필수 정류장, 역 또는 역 입구를 식별합니다.

여기에서 '역 입구'란 역 입구와 출구를 모두 지칭합니다. 정류장, 역 또는 역 입구를 총칭하여 위치라고도 합니다. 여러 경로가 같은 정류장을 사용할 수도 있습니다.
stop_code 텍스트 선택 탑승자의 위치를 나타내는 짧은 텍스트 또는 숫자입니다. 이러한 코드는 탑승자가 특정 위치에 대한 정보를 쉽게 얻을 수 있도록 전화 기반 대중교통 정보 시스템에서 자주 사용되거나 표지판에 인쇄됩니다. 탑승자가 stop_id를 이해할 수 있는 경우에는 stop_code와 stop_id가 같을 수 있습니다. 탑승자에게 공개되는 코드가 없는 위치의 경우 이 필드를 비워 두어야 합니다.
stop_name 텍스트 조건부 필수 위치의 이름입니다. 사람들이 현지 및 관광지 언어로 이해할 수 있는 이름을 사용하세요.

위치가 탑승 구역(location_type=4)이면 stop_name에는 기관에서 표시하는 탑승 구역 이름이 포함되어야 합니다. (유럽의 일부 도시 간 철도역처럼) 한 글자일 수도 있고, '휠체어 탑승 구역'(뉴욕시 지하철) 또는 '편성 차량이 적은 열차의 맨 앞 차량'(파리의 RER) 같은 텍스트가 될 수도 있습니다.

조건부 필수:
• 정류장(location_type=0), 역(location_type=1) 또는 출입구(location_type=2) 등의 위치에서는 필수입니다.
• 일반 노드(location_type=3) 또는 탑승 구역(location_type=4)인 위치에서는 선택사항입니다.
stop_desc 텍스트 선택 유용한 양질의 정보를 제공하는 위치 설명입니다. 위치의 이름을 중복해서 사용하지 마세요.
stop_lat 위도 조건부 필수 위치의 위도입니다.

조건부 필수:
• 정류장(location_type=0), 역(location_type=1) 또는 출입구(location_type=2) 등의 위치에서는 필수입니다.
• 일반 노드(location_type=3) 또는 탑승 구역(location_type=4)인 위치에서는 선택사항입니다.
stop_lon 경도 조건부 필수 위치의 경도입니다.

조건부 필수:
• 정류장(location_type=0), 역(location_type=1) 또는 출입구(location_type=2) 등의 위치에서는 필수입니다.
• 일반 노드(location_type=3) 또는 탑승 구역(location_type=4)인 위치에서는 선택사항입니다.
zone_id ID 조건부 필수 정류장에 대한 요금 적용 구간을 나타냅니다. 이 필드는 fare_rules.txt를 이용해 요금 정보를 제공할 때는 필수이며, 그렇지 않다면 선택사항입니다. 이 레코드가 역 또는 역 입구를 나타낸다면 zone_id는 무시됩니다.
stop_url URL 선택 위치 관련 웹페이지의 URL입니다. 이 값은 agency.agency_urlroutes.route_url 필드의 값과 달라야 합니다.
location_type 열거형 선택 위치의 유형입니다.
0(또는 비어 있음): 정류장(또는 승강장)입니다. 대중교통 차량의 탑승 또는 하차 위치입니다. parent_station 내부에 정의되어 있다면 승강장이라고 합니다.
1: 입니다. 하나 이상의 승강장을 포함하는 물리적 구조 또는 지역입니다.
2: 출입구입니다. 승객이 거리에서 역을 출입할 수 있는 위치입니다. 입구/출구를 다수의 역에서 공동으로 사용한다면 둘 사이가 이동 통로로 연결될 수 있지만, 데이터 제공업체는 역 하나를 상위 역으로 선택해야 합니다.
3: 일반 노드입니다. 역 내부에 있지만 다른 어떤 location_type과도 일치하지 않는 위치입니다. pathways.txt에서 정의한 이동 통로를 연결하는 데 사용됩니다.
4: 탑승 구역입니다. 승객이 승강장에서 차량에 승차하거나 하차할 수 있는 특정한 위치입니다.
parent_station stops.stop_id를 참조하는 ID 조건부 필수 stops.txt에서 정의하는 다양한 위치의 계층을 정의합니다. 다음과 같은 상위 위치의 ID를 포함합니다.
정류장/승강장(location_type=0): parent_station 필드에 역 ID가 포함되어 있습니다.
(location_type=1): 이 필드는 비어 있어야 합니다.
출입구(location_type=2) 또는 일반 코드(location_type=3): parent_station 필드에 역 ID(location_type=1)가 있습니다.
탑승 구역(location_type=4): parent_station 필드에 승강장 ID가 있습니다.

조건부 필수:
• 입구(location_type=2), 일반 노드(location_type=3) 또는 탑승 구역(location_type=4)인 위치에서는 필수입니다.
• 정류장/승강장(location_type=0)에서는 선택사항입니다.
• 역(location_type=1)에서는 사용해선 안 됩니다.
stop_timezone 시간대 선택 위치의 시간대입니다. 위치에 상위 역이 있다면 자체 시간대를 적용하는 대신 상위 역의 시간대를 상속합니다. 역과 상위 역이 없는 정류장에 stop_timezone 값이 없는 경우 agency.agency_timezone에서 지정한 시간대를 상속합니다. stop_timezone 값을 입력했다면 stop_times.txt의 시간은 agency.agency_timezone에서 지정하는 시간대를 기준으로 자정 이후의 시간을 입력해야 합니다. 이렇게 하면 이동에 소요되는 시간 값이 이동 시 통과하는 시간대에 관계없이 이동 중에 항상 증가합니다.
wheelchair_boarding 열거형 선택 위치에서의 휠체어 탑승 가능 여부를 표시합니다. 유효한 옵션은 다음과 같습니다.

상위 역이 없는 정류장의 경우
0 또는 비어 있음: 정류장에 대한 접근성 정보가 없습니다.
1: 이 정류장에서는 휠체어에 탄 탑승자가 일부 차량에 승차할 수 있습니다.
2: 이 정류장에서는 휠체어 탑승이 불가능합니다.

하위 정류장의 경우
0 또는 비어 있음: 정류장은 상위 역에서 wheelchair_boarding 행동을 상속합니다(상위 역에 지정된 경우).
1: 역 밖에서 특정 정류장/플랫폼까지 접근 가능한 일부 경로가 있습니다.
2: 역 밖에서 특정 정류장/플랫폼까지 접근 가능한 경로가 없습니다.

역 출입구의 경우
0 또는 비어 있음: 역 입구는 상위 역에서 wheelchair_boarding 행동을 상속합니다(상위 역에 지정된 경우).
1: 역 입구는 휠체어로 출입할 수 있습니다.
2: 역 입구에 정류장/승강장으로 가는 경로가 없습니다.
level_id levels.level_id를 참조하는 ID 선택 위치의 층입니다. 다수의 역이 서로 연결되어 있지 않더라도 동일 층을 사용할 수 있습니다.
platform_code 텍스트 선택 플랫폼 정류장(역에 속하는 정류장)에 대한 플랫폼 식별자입니다. 이는 플랫폼 식별자일 뿐입니다(예: 'G' 또는 '3'). '플랫폼' 또는 '트랙'과 같은 단어(또는 피드의 언어별 해당 단어)는 포함하지 않아야 합니다. 이를 통해 피드 사용자는 플랫폼 식별자를 다른 언어로 보다 쉽게 다국어화 및 현지화할 수 있습니다.

routes.txt

파일: 필수

필드 이름 유형 필수 여부 설명
route_id ID 필수 경로를 식별합니다.
agency_id agency.agency_id를 참조하는 ID 조건부 필수 지정된 경로에 대한 기관입니다. 이 필드는 데이터 세트가 agency.txt에서 기관 두 곳 이상의 경로 데이터를 제공하면 필수이며, 그렇지 않으면 선택사항입니다.
route_short_name 텍스트 조건부 필수 경로의 짧은 이름입니다. 이 이름은 '32', '100X', '녹색' 같은 짧고 추상적인 식별자로, 탑승자가 경로를 구별할 때 사용하지만 경로에 어떤 장소가 있는지 알 수는 없습니다. route_short_name 또는 route_long_name 중 하나는 반드시 지정해야 하며, 가능하다면 둘 다 지정하는 것이 좋습니다.
route_long_name 텍스트 조건부 필수 경로의 전체 이름입니다. 이 이름은 일반적으로 route_short_name보다 설명적이며 종종 경로의 목적지나 정류장을 포함합니다. route_short_name 또는 route_long_name 중 하나는 반드시 지정해야 하며, 가능하다면 둘 다 지정하는 것이 좋습니다.
route_desc 텍스트 선택 유용한 양질의 정보를 제공하는 경로 설명입니다. 경로의 이름을 단순히 중복해서 사용하지 마세요.
예를 들면 다음과 같습니다. 기차 'A'는 항상 Inwood-207 St, Manhattan과 Far Rockaway-Mott Avenue, Queens 사이에서 운행됩니다. 또한 오전 6시부터 자정 무렵까지는 Inwood-207 St와 Lefferts Boulevard 사이에서 추가 열차 'A'가 운행됩니다(일반적으로 Lefferts Blvd와 Far Rockaway 사이를 번갈아 운행함).
route_type 열거형 필수 경로에서 사용하는 교통 유형을 나타냅니다. 유효한 옵션은 다음과 같습니다.

0: 트램, 시내전차, 경전철. 수도권의 경전철 또는 거리 수준 시스템입니다.
1: 지하철, 메트로. 수도권의 모든 지하철 시스템입니다.
2: 철도. 시외 또는 장거리 이동에 사용됩니다.
3: 버스. 단거리 및 장거리 버스 노선에 사용됩니다.
4: 페리. 단거리 및 장거리 보트 서비스에 사용됩니다.
5: 케이블 트램. 케이블이 차량 밑에 있는 지상 레일 카에 사용됩니다(예: 샌프란시스코의 케이블카).
6: 공중 리프트, 현수식 케이블카(예: 곤돌라 리프트, 공중 전차). 캐빈, 자동차, 곤돌라 또는 체어리프트용 의자가 하나 이상의 케이블에 연결된 케이블 운송수단입니다.
7: 푸니쿨라. 가파른 경사에 맞게 설계된 모든 레일 시스템입니다.
11: 트롤리버스. 트롤리 폴을 이용하여 가공선으로부터 전력을 공급받는 전기 버스입니다.
12: 모노레일. 트랙이 단일 레일 또는 빔으로 구성되는 철도입니다.
route_url URL 선택 특정 경로에 대한 웹페이지의 URL입니다. agency.agency_url 값과는 달라야 합니다.
route_color 색상 선택 탑승자에게 표시되는 것과 일치하는 색상을 경로에 지정합니다. 생략하거나 값을 입력하지 않으면 흰색(FFFFFF)이 기본 색상으로 지정됩니다. 흑백 화면에서 볼 때 route_colorroute_text_color의 색상이 분명한 대비를 이루어야 합니다.
route_text_color 색상 선택 route_color를 배경색으로 할 때 텍스트를 알아보기 쉽게 해 주는 색상입니다. 생략하거나 값을 입력하지 않으면 검은색(000000)이 기본 색상으로 지정됩니다. 흑백 화면에서 볼 때 route_colorroute_text_color의 색상이 분명한 대비를 이루어야 합니다.
route_sort_order 비음수 정수 선택 고객에게 표시하기에 적합한 방식으로 경로를 정렬합니다. route_sort_order 값이 작은 경로가 먼저 표시되어야 합니다.
continuous_pickup 열거형 선택 탑승자가 대중교통 차량의 이동 경로를 따라 어디서나 차량에 탑승할 수 있는지 여부를 나타냅니다. 모든 이동 경로가 shapes.txt에 설명됩니다. 유효한 옵션은 다음과 같습니다.

0: 경로 내 어디서나 정차 후 승차가 가능합니다.
1 또는 비어 있음: 경로 내 어디서나 정차 후 승차가 불가능합니다.
2: 기관에 연락하여 경로 내 어디서나 정차 후 승차 가능 여부를 결정해야 합니다.
3: 운전자와 협의하여 경로 내 어디서나 정차 후 승차 가능 여부를 결정해야 합니다.

routes.txt에 정의된 경로 내 승차 기본 동작은 stop_times.txt에서 재정의될 수 있습니다.
continuous_drop_off 열거형 선택 탑승자가 대중교통 차량의 이동 경로를 따라 이동하다가 언제든지 차량에서 하차할 수 있는지 여부를 나타냅니다. 모든 이동 경로가 shapes.txt에 설명됩니다. 유효한 옵션은 다음과 같습니다.

0: 경로 내 어디서나 정차 후 하차가 가능합니다.
1 또는 비어 있음: 경로 내 어디서나 정차 후 하차가 불가능합니다.
2: 기관에 연락하여 경로 내 어디서나 정차 후 하차 가능 여부를 결정해야 합니다.
3: 운전자와 협의하여 경로 내 어디서나 정차 후 하차 가능 여부를 결정해야 합니다.

routes.txt에 정의된 경로 내 하차 기본 동작은 stop_times.txt에서 재정의될 수 있습니다.

trips.txt

파일: 필수

필드 이름 유형 필수 여부 설명
route_id routes.route_id를 참조하는 ID 필수 경로를 식별합니다.
service_id calendar.service_id 또는 calendar_dates.service_id를 참조하는 ID 필수 하나 이상의 경로에서 서비스를 사용할 수 있는 날짜 집합을 식별합니다.
trip_id ID 필수 이동을 식별합니다.
trip_headsign 텍스트 선택 이동 목적지를 탑승자에게 알려주는 표지판에 표시되는 텍스트입니다. 이 필드를 사용하여 동일한 경로에서 서로 다른 서비스 패턴을 구별합니다. 이동 중에 행선지가 바뀌면 stop_times.stop_headsign의 값을 지정하여 trip_headsign을 재정의할 수 있습니다.
trip_short_name 텍스트 선택 통근 열차로 이동할 때 확인하는 기차 번호처럼 이동을 확인할 때 탑승자가 이해할 수 있는 텍스트입니다. 탑승자가 이동 이름에 의존하지 않는 경우가 많으면 이 필드를 비워 두세요. trip_short_name 값(제공되는 경우)은 서비스 요일 내의 이동을 고유하게 식별해야 합니다. 목적지 이름이나 제한적/명시적 목적지에는 사용하지 않아야 합니다.
direction_id 열거형 선택 이동 방향을 나타냅니다. 이 필드는 경로 지정에서는 사용하지 않습니다. 시간표를 게시할 때 방향에 따라 이동을 구분하는 방법을 제공합니다. 유효한 옵션은 다음과 같습니다.

0: 한 방향으로 이동(예: 아웃바운드 이동)
1: 반대 방향으로 이동(예: 인바운드 이동)
예를 들어 trip_headsigndirection_id 필드를 함께 사용하여 하나의 이동 집합에서 각 방향의 이동에 이름을 지정할 수 있습니다. trips.txt 파일에는 시간표에서 사용할 수 있도록 다음 레코드가 포함될 수 있습니다.
trip_id,...,trip_headsign,direction_id
1234,...,Airport,0
1505,...,Downtown,1
block_id ID 선택 이동이 속하는 블록을 식별합니다. 블록은 동일한 차량을 사용하는 단일 이동 또는 다수의 순차적 이동으로 구성되며, 공유하는 서비스 요일 및 block_id로 정의됩니다. block_id는 서비스 요일이 다른 이동을 포함하여 별개의 블록을 만들 수 있습니다. 아래 를 참고하세요.
shape_id shapes.shape_id를 참조하는 ID 조건부 필수 이동에 따른 차량 이동 경로를 설명하는 지리공간 셰이프를 식별합니다.

조건부 필수:
경로 수준 또는 정차 시간 수준에서 이동의 연속 동작이 정의된 경우 이 필드는 필수입니다.
그렇지 않으면 선택사항입니다.
wheelchair_accessible 열거형 선택 휠체어 접근성을 나타냅니다. 유효한 옵션은 다음과 같습니다.

0 또는 비어 있음: 이동에 대한 접근성 정보가 없습니다.
1: 휠체어 탑승자 한 명 이상이 특정 이동에 사용되는 차량에 승차할 수 있습니다.
2: 휠체어 탑승자는 이번 이동에 승차할 수 없습니다.
bikes_allowed 열거형 선택 자전거 허용 여부를 나타냅니다. 유효한 옵션은 다음과 같습니다.

0 또는 비어 있음: 이 이동에 자전거 정보가 없습니다.
1: 한 대 이상의 자전거를 특정 이동에 사용되는 차량에 적재할 수 있습니다.
2: 이 이동에서는 자전거 적재가 허용되지 않습니다.

예: 블록 및 서비스 요일

다음은 요일마다 고유한 블록이 있는 유효한 예입니다.

route_id trip_id service_id block_id (첫 번째 정차 시간) (마지막 정차 시간)
red trip_1 월-화-수-목-금-토-일 red_loop 22:00:00 22:55:00
red trip_2 금-토-일 red_loop 23:00:00 23:55:00
red trip_3 금-토 red_loop 24:00:00 24:55:00
red trip_4 월-화-수-목 red_loop 20:00:00 20:50:00
red trip_5 월-화-수-목 red_loop 21:00:00 21:50:00

위 표에 대한 참고 사항:

  • 금요일부터 토요일 오전(10:00 PM~12:55 AM)까지 한 대의 차량이 trip_1, trip_2, trip_3을 운행합니다. 마지막 이동은 토요일 12:00 AM부터 12:55 AM까지이지만, 시간이 24:00:00부터 24:55:00까지이므로 '서비스 요일'은 금요일에 속하게 됩니다.
  • 월요일, 화요일, 수요일, 목요일에는 한 대의 차량이 8:00 PM부터 10:55 PM까지 블록에서 trip_1, trip_4, trip_5를 운행합니다.

stop_times.txt

파일: 필수

필드 이름 유형 필수 여부 설명
trip_id trips.trip_id를 참조하는 ID 필수 이동을 식별합니다.
arrival_time 시간 조건부 필수 경로상의 특정 이동에서 특정 정류장에 도착하는 시간입니다. 정류장의 도착 시간과 출발 시간이 별도로 정해져 있지 않다면 arrival_timedeparture_time에 동일한 값을 입력합니다. 자정 이후의 시간을 입력하려면 이동 일정이 시작되는 요일의 현지 시간으로 24:00:00보다 큰 값을 HH:MM:SS 형식으로 입력합니다.

차량이 지정된 도착 시간 및 출발 시간을 엄격하게 준수하는 정규 정류장이 타임포인트입니다. 이 정류장이 타임포인트가 아니라면 추정 시간이나 보간된 시간을 제공하는 것이 좋습니다. 그럴 수 없다면 arrival_time을 입력하지 않아도 됩니다. 또한 보간된 시간이 timepoint=0으로 제공됨을 나타냅니다. 보간된 시간이 timepoint=0으로 표시되면, 타임포인트는 timepoint=1로 표시되어야 합니다. 타임포인트인 모든 정류장에 대한 도착 시간을 제공합니다. 이동의 첫 번째 정류장과 마지막 정류장에 대한 도착 시간을 지정해야 합니다.
departure_time 시간 조건부 필수 경로상의 특정 이동에서의 특정 정류장 출발 시간입니다. 자정 이후의 시간을 입력하려면 이동 일정이 시작되는 요일의 현지 시간으로 24:00:00보다 큰 값을 HH:MM:SS 형식으로 입력합니다. 정류장의 도착 시간과 출발 시간이 별도로 정해져 있지 않다면 arrival_timedeparture_time에 동일한 값을 입력합니다. 타임포인트를 올바르게 사용하는 방법에 대한 자세한 내용은 arrival_time 설명을 참고하세요.

departure_time 필드는 타임포인트 간의 구속력 없는 추정 또는 보간된 시간을 포함한 시간 값을 가능할 때마다 지정해야 합니다.
stop_id stops.stop_id를 참조하는 ID 필수 서비스가 제공되는 정류장을 식별합니다. 이동 중에 서비스되는 모든 정류장은 stop_times.txt에 레코드가 있어야 합니다. 참조된 위치는 역이나 역 입구가 아닌 정류장이어야 합니다. 같은 이동에서 한 정류장이 여러 번 서비스될 수 있으며, 여러 이동과 경로가 같은 정류장을 서비스할 수도 있습니다.
stop_sequence 비음수 정수 필수 특정 이동에서의 정류장 순서입니다. 이동이 진행되면 값이 증가해야 하지만 연속으로 증가할 필요는 없습니다.
예를 들어 이동의 첫 번째 위치는 stop_sequence=1이고 두 번째 위치는 stop_sequence=23이며, 세 번째 위치는stop_sequence=40인 식입니다.
stop_headsign 텍스트 선택 이동 목적지를 탑승자에게 알려주는 표지판에 표시되는 텍스트입니다. 정류장 사이에서 행선지가 변경되면 이 필드가 기본 trips.trip_headsign을 재정의합니다. 행선지가 이동 전체에서 표시된다면 대신 trips.trip_headsign을 사용해야 합니다.

단일 stop_time에 지정된 stop_headsign 값은 같은 이동에서의 이후 stop_time에는 적용되지 않습니다. 같은 이동의 여러 stop_time에 대해 trip_headsign을 재정의하고 싶으면 stop_headsign 값을 각 stop_time 행에 반복 입력해야 합니다.
pickup_type 열거형 선택 승차 방법을 나타냅니다. 유효한 옵션은 다음과 같습니다.

0 또는 빈칸: 정기적인 일정에 따른 승차
1: 승차할 수 없음
2: 기관에 연락하여 승차 일정을 조율해야 함
3: 운전자와 협의하여 승차 일정을 조율해야 함
drop_off_type 열거형 선택 하차 방법을 나타냅니다. 유효한 옵션은 다음과 같습니다.

0 또는 빈칸: 정기적인 일정에 따른 하차
1: 하차할 수 없음
2: 기관에 전화하여 하차 일정을 조율해야 함
3: 운전자와 협의하여 하차 일정을 조율해야 함
continuous_pickup 열거형 선택 탑승자가 대중교통 차량의 이동 경로를 따라 언제든지 차량에 탑승할 수 있는지 여부를 나타냅니다. 이동의 stop_sequence에서 이 stop_time부터 다음 stop_time까지 경로가 shapes.txt에 설명됩니다. 유효한 옵션은 다음과 같습니다.

0: 경로 내 어디서나 정차 후 승차가 가능합니다.
1 또는 비어 있음: 경로 내 어디서나 정차 후 승차가 불가능합니다.
2: 기관에 연락하여 경로 내 어디서나 정차 후 승차 가능 여부를 결정해야 합니다.
3: 운전자와 협의하여 경로 내 어디서나 정차 후 승차 가능 여부를 결정해야 합니다.

stop_times.txt에 표시된 경로 내 승차 동작은 routes.txt에서 정의된 모든 동작을 재정의합니다.
continuous_drop_off 열거형 선택 탑승자가 이동의 stop_sequence에서 이 stop_time부터 다음 stop_time까지, shapes.txt에 설명된 대중교통 차량의 이동 경로를 따라 이동하다가 언제든지 차량에서 하차할 수 있는지 여부를 나타냅니다.

0: 경로 내 어디서나 정차 후 하차가 가능합니다.
1 또는 비어 있음: 경로 내 어디서나 정차 후 하차가 불가능합니다.
2: 기관에 연락하여 경로 내 어디서나 정차 후 하차 가능 여부를 결정해야 합니다.
3: 운전자와 협의하여 경로 내 어디서나 정차 후 하차 가능 여부를 결정해야 합니다.

stop_times.txt에 표시된 경로 내 하차 동작은 routes.txt에서 정의된 모든 동작을 재정의합니다.
shape_dist_traveled 비음수 부동 소수 선택 셰이프를 따라서 첫 번째 정류장부터 이 레코드에서 지정하는 정류장까지 이동하는 실제 거리입니다. 이 필드는 이동 중에 두 정류장 사이에서 그리는 셰이프의 정도를 지정합니다. shapes.txt에서와 같은 단위를 사용해야 합니다. shape_dist_traveled에 사용하는 값은 stop_sequence에 따라 증가해야 합니다. 경로에 따른 역 이동을 표시하는 데는 사용할 수 없습니다.
예를 들어 버스가 셰이프의 시작 지점에서 정류장까지 5.25km의 거리를 이동한다면 shape_dist_traveled=5.25가 됩니다.
timepoint 열거형 선택 정류소의 도착 시간 및 출발 시간을 차량이 엄격하게 준수하는지 여부 또는 근사치나 보간된 시간인지 여부를 나타냅니다. 이 필드를 사용하면 GTFS 제작자는 보간된 정차 시간을 제공하면서도 이 정차 시간이 대략적인 시간임을 표시할 수 있습니다. 유효한 옵션은 다음과 같습니다.

0: 대략적인 시간으로 간주합니다.
1 또는 비어 있음: 정확한 시간으로 간주합니다.

calendar.txt

파일: 조건부 필수

필드 이름 유형 필수 여부 설명
service_id ID 필수 하나 이상의 경로에서 서비스를 사용할 수 있는 날짜 집합을 고유하게 식별합니다. 각 service_id 값은 calendar.txt 파일에 한 번 나타날 수 있습니다.
monday 열거형 필수 start_dateend_date 필드에서 지정하는 기간에서 서비스가 월요일마다 제공되는지를 나타냅니다. 특정 날짜에 대한 예외사항을 calendar_dates.txt에서 확인할 수도 있습니다. 유효한 옵션은 다음과 같습니다.

1: 기간 중 모든 월요일에 서비스가 제공됩니다.
0: 기간 중 월요일에는 서비스가 제공되지 않습니다.
tuesday 열거형 필수 화요일에 적용되는 경우를 제외하고 monday와 같은 방식으로 작동합니다.
wednesday 열거형 필수 수요일에 적용되는 경우를 제외하고 monday와 같은 방식으로 작동합니다.
thursday 열거형 필수 목요일에 적용되는 경우를 제외하고 monday와 같은 방식으로 작동합니다.
friday 열거형 필수 금요일에 적용되는 경우를 제외하고 monday와 같은 방식으로 작동합니다.
saturday 열거형 필수 토요일에 적용되는 경우를 제외하고 monday와 같은 방식으로 작동합니다.
sunday 열거형 필수 일요일에 적용되는 경우를 제외하고 monday와 같은 방식으로 작동합니다.
start_date 날짜 필수 서비스 간격의 서비스 시작일입니다.
end_date 날짜 필수 서비스 간격의 서비스 종료일입니다. 이 서비스 날짜는 서비스 간격에 포함됩니다.

calendar_dates.txt

파일: 조건부 필수

calendar_dates.txt 표를 사용하면 서비스를 날짜별로 명시적으로 활성화하거나 비활성화할 수 있습니다. 이 표는 두 가지 방법으로 사용할 수 있습니다.

  • 권장 방법: calendar_dates.txtcalendar.txt와 함께 사용하여 calendar.txt에 정의된 기본 서비스 패턴에 대한 예외를 정의합니다. 일반적으로 서비스가 (예를 들어 특별한 이벤트 서비스 또는 학교 일정을 수용하기 위해) 명시적인 날짜를 약간 변경하여 정기적으로 진행된다면, 이는 좋은 접근방법입니다. 이때 calendar_dates.service_idcalendar.service_id를 참조하는 ID입니다.
  • 대체 방법: calendar.txt를 생략하고 calendar_dates.txt에 각 서비스 날짜를 지정합니다. 이렇게 하면 서비스를 대폭 변경하고 일반적인 주간 일정 없이도 서비스를 수용할 수 있습니다. 이때는 service_id가 ID입니다.
필드 이름 유형 필수 여부 설명
service_id calendar.service_id를 참조하는 ID 또는 ID 필수 하나 이상의 경로에서 서비스 예외가 발생하는 날짜 집합을 식별합니다. calendar.txtcalendar_dates.txt를 함께 사용한다면 각 (service_id, date) 쌍은 calendar_dates.txt에 한 번만 나타날 수 있습니다. service_id 값이 calendar.txtcalendar_dates.txt에 모두 나타난다면 calendar_dates.txt에 있는 정보로 calendar.txt에 지정된 서비스 정보를 수정합니다.
date 날짜 필수 서비스 예외가 발생하는 날짜입니다.
exception_type 열거형 필수 날짜 필드에서 지정한 날짜에 서비스를 제공할 수 있는지 여부를 나타냅니다. 유효한 옵션은 다음과 같습니다.

1: 지정한 날짜에 서비스가 추가되었습니다.
2: 지정한 날짜에서 서비스가 삭제되었습니다.
예를 들어 휴일에 이용할 수 있는 일련의 이동과 다른 모든 요일에 이용할 수 있는 일련의 이동이 경로에 있다고 가정합니다. 하나의 service_id는 정규 서비스 일정에 해당하고, 다른 service_id는 휴일 일정에 해당할 수 있습니다. 특정 휴일의 경우 calendar_dates.txt 파일을 사용하여 공휴일을 공휴일 service_id에 추가하고 정규 service_id 일정에서 공휴일을 삭제할 수 있습니다.

fare_attributes.txt

파일: 선택

필드 이름 유형 필수 여부 설명
fare_id ID 필수 요금 체계를 식별합니다.
price 비음수 부동 소수 필수 currency_type에서 지정하는 단위로 표시한 운임 가격입니다.
currency_type 통화 코드 필수 운임을 지불할 때 사용하는 통화입니다.
payment_method 열거형 필수 요금을 지불해야 하는 시점을 나타냅니다. 유효한 옵션은 다음과 같습니다.

0: 승차할 때 요금을 지불합니다.
1: 승차하기 전에 운임을 지불해야 합니다.
transfers 열거형 필수 이 요금으로 이용 가능한 환승 횟수를 나타냅니다. 필수 필드는 비워둘 수 없지만, 예외적으로 이 필드는 비워둘 수 있습니다. 유효한 옵션은 다음과 같습니다.

0: 이 요금으로는 환승이 허용되지 않습니다.
1: 탑승자는 한 번 환승할 수 있습니다.
2: 탑승자는 두 번 환승할 수 있습니다.
비어 있음: 무제한으로 환승할 수 있습니다.
agency_id agency.agency_id를 참조하는 ID 조건부 필수 요금 관련 기관을 식별합니다. 이 필드는 agency.txt에 여러 기관이 정의되어 있는 데이터 세트에서는 필수이며, 그렇지 않다면 선택사항입니다.
transfer_duration 비음수 정수 선택 환승이 만료되는 시간(초)입니다. transfers=0일 때 이 필드를 이용하면 티켓 유효 기간을 표시할 수 있습니다. 원하지 않는다면 입력하지 않아도 됩니다.

fare_rules.txt

파일: 선택

fare_rules.txt 표는 fare_attributes.txt의 요금을 여정에 적용하는 방법을 지정합니다. 대부분의 요금 체계는 다음 규칙을 일부 조합하여 사용합니다.

  • 운임은 출발지 또는 목적지 역에 따라 다릅니다.
  • 운임은 여정이 통과하는 구역에 따라 다릅니다.
  • 운임은 여정에 사용되는 경로에 따라 다릅니다.

fare_rules.txtfare_attributes.txt로 요금 체계를 지정하는 방법은 GoogleTransitDataFeed 오픈소스 프로젝트 위키의 https://code.google.com/p/googletransitdatafeed/wiki/FareExamples에서 확인할 수 있습니다.

필드 이름 유형 필수 여부 설명
fare_id fare_attributes.fare_id를 참조하는 ID 필수 요금 체계를 식별합니다.
route_id routes.route_id를 참조하는 ID 선택 요금 체계와 연관된 경로를 식별합니다. 여러 경로에 동일한 요금 속성이 있다면, fare_rules.txt에 각 경로에 대한 레코드를 만듭니다.
예를 들어 요금 체계 'b'가 'TSW' 및 'TSE' 경로에서 유효하다면 fare_rules.txt 파일에 요금 체계에 대한 다음 레코드가 포함됩니다.
fare_id,route_id
b,TSW
b,TSE
origin_id stops.zone_id를 참조하는 ID 선택 출발지 구역을 식별합니다. 요금 체계에 여러 출발지 구역이 있다면 각 origin_id에 대해 fare_rules.txt에 레코드를 작성합니다.
예를 들어 요금 체계 'b'가 구역 '2' 또는 구역 '8'에서 출발하는 모든 이동에 유효하다면 fare_rules.txt 파일에 요금 체계에 대한 다음 레코드가 포함됩니다.
fare_id,...,origin_id
b,...,2
b,...,8
destination_id stops.zone_id를 참조하는 ID 선택 목적지 구역을 식별합니다. 요금 체계에 여러 목적지 구역이 있다면 각 destination_id에 대해 fare_rules.txt에 레코드를 작성합니다.
예를 들어 origin_iddestination_id 필드를 함께 사용하여 요금 등급 'b'가 구역 3과 구역 4 사이의 이동에 유효하고 구역 3과 구역 5 사이의 이동에 유효하다는 것을 지정할 수 있으며, 이 경우 fare_rules.txt 파일에 요금 등급에 대한 다음 레코드가 포함됩니다.
fare_id,...,origin_id,destination_id
b,...,3,4
b,...,3,5
contains_id stops.zone_id를 참조하는 ID 선택 탑승자가 임의의 요금 체계를 사용할 때 진입하는 구역을 식별합니다. 일부 시스템에서 정확한 요금 체계를 계산할 때 사용됩니다.
예를 들어 요금 체계 'c'가 구역 5, 6 및 7을 통과하는 GRT 경로의 모든 이동과 연결된다면 fare_rules.txt에 다음 레코드가 포함됩니다.
fare_id,route_id,...,contains_id
c,GRT,...,5
c,GRT,...,6
c,GRT,...,7
적용할 운임에 대해 모든 contains_id 구역이 일치해야 하므로 구역 5와 구역 6을 통과하지만 구역 7은 통과하지 않는 여정에는 요금 등급 'c'가 없습니다. 자세한 내용은 GoogleTransitDataFeed 프로젝트 위키에서 https://code.google.com/p/googletransitdatafeed/wiki/FareExamples를 참고하세요.

shapes.txt

파일: 선택

셰이프는 차량이 경로 정렬을 따라 이동하는 경로를 나타내며, shapes.txt 파일에 정의됩니다. 셰이프는 이동과 연결되며, 차량이 순서대로 지나가는 일련의 포인트로 구성됩니다. 셰이프는 정류장의 위치를 정확하게 구분할 필요는 없지만, 이동상의 모든 정류장은 해당 이동의 셰이프와 근거리에 있어야 합니다. 즉 셰이프 포인트를 연결하는 직선과 가까이에 있어야 합니다.

필드 이름 유형 필수 여부 설명
shape_id ID 필수 셰이프를 식별합니다.
shape_pt_lat 위도 필수 셰이프 포인트의 위도입니다. shapes.txt의 각 레코드는 셰이프를 정의하는 데 사용한 셰이프 포인트를 나타냅니다.
shape_pt_lon 경도 필수 셰이프 포인트의 경도입니다.
shape_pt_sequence 비음수 정수 필수 셰이프 포인트가 셰이프를 형성할 때 연결되는 순서입니다. 이동이 진행되면 값이 증가해야 하지만 연속으로 증가할 필요는 없습니다.
예를 들어 셰이프 'A_shp'의 정의에 3개의 포인트가 있으면 shapes.txt 파일에 셰이프를 정의하는 다음 레코드가 포함될 수 있습니다.
shape_id,shape_pt_lat,shape_pt_lon,shape_pt_sequence
A_shp,37.61956,-122.48161,0
A_shp,37.64430,-122.41070,6
A_shp,37.65863,-122.30839,11
shape_dist_traveled 비음수 부동 소수 선택 셰이프를 따라서 첫 번째 셰이프 포인트부터 이 레코드에서 지정하는 포인트까지 이동하는 실제 거리입니다. 이동 플래너가 지도에 셰이프의 올바른 위치를 표시할 때 사용합니다. 값은 shape_pt_sequence에 따라 증가해야 합니다. 경로에 따른 역방향 이동을 표시하는 데는 사용할 수 없습니다. 거리 단위는 stop_times.txt에서 사용하는 단위와 일치해야 합니다.
예를 들어 버스가 A_shp에 대해 위에 정의된 세 포인트를 따라 이동한다면 추가 shape_dist_traveled 값(여기서는 킬로미터로 표시)은 다음과 같습니다.
shape_id,shape_pt_lat,shape_pt_lon,shape_pt_sequence,shape_dist_traveled
A_shp,37.61956,-122.48161,0,0
A_shp,37.64430,-122.41070,6,6.8310
A_shp,37.65863,-122.30839,11,15.8765

frequencies.txt

파일: 선택

Frequencies.txt는 정기적인 운행 간격(이동 간 시간)으로 운행되는 이동을 나타냅니다. 이 파일은 두 가지 다른 유형의 서비스를 나타내는 데 사용할 수 있습니다.

  • 서비스가 온종일 고정된 일정을 빠르지 않는 빈도 기반 서비스(exact_times=0)입니다. 대신 운영자가 사전에 결정된 이동 운행 간격을 엄격하게 유지하려 합니다.
  • 지정된 기간의 이동 운행 간격과 정확하게 동일한 일정 기반 서비스의 압축된 표현(exact_times=1)입니다. 일정 기반 서비스에서는 운영자가 일정을 엄격하게 준수하려 합니다.
필드 이름 유형 필수 여부 설명
trip_id trips.trip_id를 참조하는 ID 필수 지정된 서비스 운행 간격이 적용되는 이동을 식별합니다.
start_time 시간 필수 이동 중 첫 번째 정류장에서 첫 번째 차량이 지정된 운행 간격으로 출발하는 시간입니다.
end_time 시간 필수 이동 중 첫 번째 정류장에서 서비스 운행 간격이 바뀌는(또는 중단되는) 시간입니다.
headway_secs 비음수 정수 필수 start_timeend_time으로 지정된 시간 간격 동안 이동에 대해 같은 정류장(운행 간격)에서 출발하는 시간(초)입니다. 같은 이동에 여러 운행 간격을 이용할 수 있지만 중복되어선 안 됩니다. 새 운행 간격은 이전 운행 간격이 끝나는 시점에서 바로 시작할 수 있습니다.
exact_times 열거형 선택 이동의 서비스 유형을 나타냅니다. 자세한 정보는 파일 설명을 참고하세요. 유효한 옵션은 다음과 같습니다.

0 또는 비어 있음: 빈도 기반 이동입니다.
1: 하루 중 운행 간격이 정확하게 동일한 일정 기반 이동입니다. 이 경우 end_time 값은 마지막 원하는 이동의 start_time보다 크고 마지막 원하는 이동의 start_time + headway_secs보다는 작아야 합니다.

transfers.txt

파일: 선택

운행 일정을 계산할 때는 GTFS를 사용하는 애플리케이션이 허용되는 시간과 정류장 근접성에 따라 환승을 보간합니다. Transfers.txt는 추가되는 규칙을 지정하고 선택한 환승에 맞춰 재정의합니다.

필드 이름 유형 필수 여부 설명
from_stop_id stops.stop_id를 참조하는 ID 필수 경로 간 연결이 시작되는 정류장 또는 역을 식별합니다. 이 필드가 역을 참조하는 경우 환승 규칙이 모든 하위 정류장에 적용됩니다.
to_stop_id stops.stop_id를 참조하는 ID 필수 경로 간 연결이 끝나는 정류장 또는 역을 식별합니다. 이 필드가 역을 참조한다면 환승 규칙이 모든 하위 정류장에 적용됩니다.
transfer_type 열거형 필수 지정된 쌍(from_stop_id, to_stop_id)에 대한 연결 유형을 나타냅니다. 유효한 옵션은 다음과 같습니다.

0 또는 비어 있음: 경로 간에 권장되는 환승 지점입니다.
1: 두 경로 간의 정기 환승 지점입니다. 출발 차량은 탑승자가 경로 간에 환승하기에 충분한 시간을 두고 도착 차량을 기다릴 것으로 예상됩니다.
2: 연결을 위해 도착과 출발 사이에 최소 시간이 필요한 환승입니다. 환승에 필요한 시간은 min_transfer_time에서 지정합니다.
3: 위치에서는 경로 간 환승이 불가능합니다.
min_transfer_time 비음수 정수 선택 지정된 정류장에서 경로 간 환승이 허용되어야 하는 시간(초)입니다. min_transfer_time은 각 경로에서 일정 차이를 허용하는 버퍼 시간을 포함하여 일반 탑승자가 두 정류장 사이를 이동할 수 있을 정도로 길어야 합니다.

pathways.txt

파일: 선택

GTFS-Pathways 확장은 그래프 표현을 사용하여 지하철 또는 기차를 노드(위치) 및 에지(이동 통로)와 함께 설명합니다.

입구(location_type=2로 위치로 표시되는 노드)에서 승강장(location_type=0으로 위치로 표시되는 노드)으로 이동하려면 탑승자는 (이동 통로로 표시되는 에지인) 보도, 개찰구, 계단 등을 통과해야 합니다. 또한 제안서에서는 '일반 노드'라는 일반적인 위치 유형을 추가해, 다양한 보도를 이용할 수 있는 보도 횡단 등을 나타냅니다.

경고: 이동 통로는 단일 역에서 정확하게 지정해야 합니다. 결과적으로 역에 속한 단일 승강장(정류장), 입구 또는 노드에 연결된 이동 통로가 있게 되면, 역은 자신의 이동 통로를 철저하게 설명하는 것으로 간주됩니다. 따라서 다음과 같은 상식적인 규칙이 적용됩니다.

  • 독립된 위치 없음: 역 내부의 임의 위치에 이동 통로가 있다면 탑승 구역이 포함된 승강장을 제외하고 모든 위치에 이동 통로가 있어야 합니다.
  • 격리된 승강장 없음: 각 승강장은 이동 통로를 통해 입구 1곳 이상에 연결되어야 합니다. 실제로는 대단히 드물지만 외부로 나갈 수 없는 역도 있습니다.
  • 탑승 구역이 포함된 승강장으로 향하는 이동 통로 없음: 탑승 구역이 포함된 승강장은 지점이 아닌 상위 개체로 처리됩니다. 이곳에는 이동 통로가 지정되지 않을 수도 있습니다. 모든 이동 통로는 탑승 구역을 향해야 합니다.
필드 이름 유형 필수 여부 설명
pathway_id ID 필수 pathway_id 필드는 이동 통로를 고유하게 식별하는 ID를 포함합니다. pathway_id는 시스템에서 이 레코드의 내부 식별자(예: 데이터베이스의 기본 키)로 사용하므로 pathway_id는 고유한 데이터 세트여야 합니다.
여러 이동 통로가 동일한 from_stop_id에서 동일한 to_stop_id로 연결될 수 있습니다. 예를 들자면 에스컬레이터가 반대 방향으로 나란히 있거나, 계단과 엘리베이터가 둘 다 동일한 곳에서 동일한 곳으로 이어지는 경우입니다.
from_stop_id stops.stop_id를 참조하는 ID 필수 이동 통로가 시작되는 위치입니다. stops.txt 파일에서 승강장, 입구/출구, 일반 노드 또는 탑승 구역을 나타내는 stop_id를 포함합니다.
to_stop_id stops.stop_id를 참조하는 ID 필수 이동 통로가 끝나는 위치입니다. stops.txt 파일에서 승강장, 입구/출구, 일반 노드 또는 탑승 구역을 나타내는 stop_id를 포함합니다.
pathway_mode 열거형 필수 지정된 쌍(from_stop_id, to_stop_id) 사이의 이동 통로 유형입니다. 이 필드에 사용할 수 있는 유효한 값은 다음과 같습니다.
• 1: 보도
• 2: 계단
• 3: 이동식 보도/평면 에스컬레이터
• 4: 에스컬레이터
• 5: 엘리베이터
• 6: 개찰구(또는 매표소): 역에서 티켓 구매를 증명해야 하는 구역을 지나가는 이동 통로입니다(보통은 실제 매표소를 이용합니다).
개찰구는 역에서 유료 구역과 무료 구역을, 혹은 동일한 역 내부에서 여러 유료 구역을 서로 분리할 수도 있습니다. 이 정보는 탑승자들이 지름길을 이용해 역을 이동하면서 불필요한 티켓을 구매하지 않게 하는 데 사용됩니다. 대표적인 방법은 승객이 지하철 승강장을 통해 버스 전용 도로로 가게 하는 것입니다.
• 7: 집표소: 티켓 구매를 증명해야 하는 구역으로 들어가 티켓 구매 증명이 필요 없는 구역으로 나오는 이동 통로를 나타냅니다.
is_bidirectional 열거형 필수 이동 통로를 사용할 수 있는 방향을 나타냅니다.
• 0: 단방향 이동 통로로 from_stop_id에서 to_stop_id 방향으로만 사용할 수 있습니다.
• 1: 양방향 이동 통로로, 양쪽 방향으로 사용할 수 있습니다.

개찰구(pathway_mode=6)와 집표소(pathway_mode=7)는 양방향일 수 없습니다.
length 비음수 부동 소수 선택 출발 위치(from_stop_id에서 정의)에서 목적지 위치(to_stop_id에서 정의)까지 이동 통로의 수평 길이(단위: 미터)입니다.

이 필드는 보도(pathway_mode=1), 개찰구(pathway_mode=6), 집표소(pathway_mode=7)에 사용하는 것이 좋습니다.
traversal_time 양의 정수 선택 출발 위치(from_stop_id에서 정의)에서 목적지 위치(to_stop_id에서 정의)까지의 이동 통로를 통과하는 데 걸리는 평균 시간(초)입니다.

이 필드는 이동식 보도(pathway_mode=3), 에스컬레이터(pathway_mode=4), 엘리베이터(pathway_mode=5)에 사용하는 것이 좋습니다.
stair_count null이 아닌 정수 선택 이동 통로의 계단 수입니다.

모범 사례: 1층은 15계단이라는 가정을 적용해 근사값을 생성합니다.

양의 stair_count는 탑승자가from_stop_id에서 to_stop_id까지 계단을 올라가야 함을 의미합니다. 음의 stair_count는 탑승자가 from_stop_id에서 to_stop_id까지 계단을 내려가야 함을 의미합니다.

이 필드는 계단(pathway_mode=2)에 사용하는 것이 좋습니다.
max_slope 부동 소수 선택 이동 통로의 최대 경사율입니다. 이 필드에 사용할 수 있는 유효한 값은 다음과 같습니다
• 0 또는 비어 있음: 경사가 없습니다.
• 부동 소수: 이동 통로의 경사율로, 양의 값은 위쪽 경사를 의미하고 음의 값은 아래쪽 경사를 의미합니다.

이 필드는 반드시 보도(pathway_type=1) 및 이동식 보도(pathway_type=3)와 함께 사용해야 합니다.

예를 들어 미국에서 0.083(또는 8.3%로 표기)는 수동 휠체어의 최대 경사율로, 1m당 0.083m(즉 8.3cm)씩 증가함을 의미합니다.
min_width 양의 부동 소수 선택 이동 통로의 최소 너비(m)입니다.

이 필드는 최소 너비가 1m 미만일 때 강력하게 권장됩니다.
signposted_as 텍스트 선택 대중교통 탑승자가 보게 되는 실제 표지판의 텍스트 문자열입니다. 이 문자열은 사용자에게 텍스트 방향을 제시하는 데 사용합니다(예: '표지판을 따라 다음으로 이동하세요'). 언어 텍스트는 번역하지 않고 표지판에 인쇄되는 형태 그대로 이 필드에 입력해야 합니다.
reversed_signposted_as 텍스트 선택 signposted_as 필드와 동일하지만 이동 통로가 역방향으로, 즉 to_stop_id에서 from_stop_id로 진행됩니다.

levels.txt

파일: 선택

역의 여러 층에 대해서 설명합니다. pathways.txt와 함께 사용할 때 가장 유용하며, 엘리베이터(pathway_mode=5)에서 사용자에게 '메자닌'이나 '플랫폼' 층으로 갈지 물어볼 때 필요합니다.

필드 이름 유형 필수 여부 설명
level_id ID 필수 stops.txt에서 참조할 수 있는 층의 ID입니다.
level_index 부동 소수 필수 다른 층에 대한 이 층의 상대적 위치를 나타내는 숫자 지수입니다(지수가 높은 층이 지수가 낮은 층보다 위에 위치하는 것으로 가정).

1층은 지수가 0이며 양의 지수는 지상 층을, 음의 지수는 지하 층을 나타냅니다.
level_name 텍스트 선택 (건물 또는 역 내부에서 사용되는 층 문자 또는 번호와 일치하는) 층의 선택적 이름입니다. 엘리베이터 경로를 설정할 때 유용합니다(예: '엘리베이터를 '메자닌', '승강장' 또는 '-1' 층으로 옮김).

feed_info.txt

파일: 조건부 필수

이 파일에는 데이터 세트가 설명하는 서비스가 아닌 데이터 세트 자체에 대한 정보가 포함됩니다. 경우에 따라 데이터 세트의 게시자가 대행사와 다를 수 있습니다. translations.txt가 제공된 경우 이 파일은 필수입니다.

필드 이름 유형 필수 여부 설명
feed_publisher_name 텍스트 필수 데이터 세트를 게시하는 조직의 전체 이름입니다. agency.agency_name 값 중 하나와 동일할 수 있습니다.
feed_publisher_url URL 필수 데이터 세트를 게시하는 조직의 웹사이트 URL입니다. agency.agency_url 값 중 하나와 동일할 수 있습니다.
feed_lang 언어 코드 필수 데이터 세트의 텍스트에 사용되는 기본 언어입니다. 이 설정은 GTFS 사용자가 데이터 세트의 대문자 사용 규칙 및 다른 언어별 설정을 선택하는 데 도움이 됩니다.

다른 언어를 정의하려면 translations.txtlanguage 필드를 사용하세요.

다국어 데이터 세트는 여러 언어로 된 원본 텍스트의 기본 언어일 수 있습니다. 이러한 경우에는 feed_lang 필드에 ISO 639-2mul 언어 코드를 사용하세요. translations.txt의 데이터 세트에 사용된 각 언어에 대한 번역을 제공합니다. 데이터 세트의 원본 텍스트가 모두 동일한 언어인 경우 mul을 사용하지 마세요.

예를 들어 스위스의 데이터 세트에는 원본 stops.stop_name 필드의 정류장 이름이 다른 언어로 입력될 수 있습니다. 각 정류장 이름은 해당 정류장의 지리적 위치에서 주로 사용되는 언어에 따라 작성됩니다. 프랑스어를 사용하는 도시인 제네바에서는 Genève, 독일어를 사용하는 도시인 취리히에서는 Zürich, 이중 언어를 사용하는 도시인 빌/비엔에서는 Biel/Bienne을 정류장 이름으로 포함합니다. feed_lang=mul을 설정하고 translations.txt에 다음 번역을 제공합니다.
  • 독일어: 'Genf', 'Zürich', 'Biel'
  • 프랑스어: 'Genève', 'Zurich', 'Bienne'
  • 이탈리아어: 'Ginevra', 'Zurigo', 'Bienna'
  • 영어: 'Geneva', 'Zurich', 'Biel/Bienne'
default_lang 언어 코드 선택 데이터 소비자가 탑승자의 언어를 모를 때 사용할 언어를 정의합니다. 주로 영어(en)로 정의됩니다.
feed_start_date 날짜 선택 데이터 세트는 feed_start_date일이 시작되어 feed_end_date일 끝날 때까지의 기간에 완전하고 믿을 수 있는 서비스 일정 정보를 제공합니다. 사용할 수 없다면 두 날짜 모두 입력하지 않아도 됩니다. 두 날짜가 모두 제공된다면 feed_end_date 날짜는 feed_start_date 날짜 이후여야 합니다. 데이터 세트 제공업체는 향후 서비스 가능성을 안내하기 위해 이 기간 외의 일정 데이터를 제공하는 것이 좋습니다. 그러나 데이터 세트 사용자는 제공업체가 신뢰할 수 없는 상태임을 고려해야 합니다. feed_start_date 또는 feed_end_datecalendar.txtcalendar_dates.txt에 정의된 활성 캘린더 날짜를 벗어난다면, 데이터 세트는 활성 캘린더 기간에는 포함되지 않지만 feed_start_date에서 feed_end_date 범위 내의 날짜에 이용할 수 있는 서비스가 없음을 명시적으로 확인합니다.
feed_end_date 날짜 선택 이 테이블의 feed_start_date 행을 참고하세요.
feed_version 텍스트 선택 GTFS 데이터 세트의 현재 버전을 나타내는 문자열입니다. GTFS를 사용하는 애플리케이션은 데이터 세트 게시자가 최신 데이터 세트가 통합되었는지를 판단할 수 있도록 이 값을 표시합니다.
feed_contact_email 이메일 선택 GTFS 데이터 세트 및 데이터 게시 권장사항에 관해 문의할 수 있는 이메일 주소입니다. feed_contact_email은 GTFS를 사용하는 애플리케이션의 기술 담당자용입니다. agency.txt를 통해 고객 서비스 연락처 정보를 제공하세요.
feed_contact_url URL 선택 GTFS 데이터 세트 및 데이터 게시 권장사항에 관해 문의할 수 있는 연락처 정보, 웹 양식, 지원 데스크, 기타 도구가 게시된 URL입니다. feed_contact_url은 GTFS를 사용하는 애플리케이션의 기술 담당자용입니다. agency.txt를 통해 고객 서비스 연락처 정보를 제공하세요.

translations.txt

파일: 선택

필드 이름 유형 필수 여부 설명
table_name 열거형 필수

번역할 필드가 들어 있는 데이터 세트 표를 정의합니다. 허용되는 값은 다음과 같습니다.

  • agency
  • stops
  • routes
  • trips
  • stop_times
  • feed_info
  • pathways
  • levels
  • attributions
field_name 텍스트 필수

번역할 필드의 이름을 제공합니다. 'URL', '이메일', '전화번호' 유형의 필드는 여기에 포함되어 해당 리소스를 올바른 언어로 제공할 수 있지만 '텍스트' 유형은 번역할 수 있습니다.

language 언어 코드 필수

번역 언어를 제공합니다.

이 언어가 feed_info.txtfeed_lang 언어와 동일한 경우 필드의 기존 값은 특정 번역이 없는 언어에서 사용되는 기본값입니다.

예를 들어 스위스에서 이중 언어로 'Biel/Bienne'이라고 불리는 도시가 프랑스에서는 'Bienne', 독일에서는 'Biel'로만 불립니다.

translation 텍스트, URL, 이메일 또는 전화번호 필수 지정된 field_name에 대해 번역된 값을 제공합니다.
record_id ID 조건부 필수

번역할 필드에 해당하는 레코드를 정의합니다. record_id의 값은 다음 표에 정의된 대로 데이터 세트 표의 기본 ID여야 합니다.

table_name record_id
agency agency_id
stops stop_id
routes route_id
trips trip_id
stop_times trip_id
pathways pathway_id
levels level_id
attributions attribution_id

다음은 이 필드의 사용 방식을 결정하는 조건입니다.

  • table_namefeed_info와 같으면 금지됩니다.
  • field_value가 정의되어 있으면 금지됩니다.
  • field_value가 비어있는 경우 필수입니다.
record_sub_id ID 조건부 필수

record_id에서 참조하는 표에 고유 ID가 없는 경우 필드가 포함된 레코드를 번역하는 데 도움이 됩니다. record_sub_id의 값은 다음 표에 정의된 데이터 세트 표의 보조 ID입니다.

table_name record_sub_id
agency NONE
stops NONE
routes NONE
trips NONE
stop_times stop_sequence
pathways NONE
levels NONE
attributions NONE

다음은 이 필드의 사용 방식을 결정하는 조건입니다.

  • table_namefeed_info와 같으면 금지됩니다.
  • field_value가 정의되어 있으면 금지됩니다.
  • table_namestop_times와 같고 record_id가 정의되어 있으면 필수입니다.

field_value 텍스트, URL, 이메일 또는 전화번호 조건부 필수

어느 레코드를 번역해야 할지 정의하는 데 record_idrecord_sub_id를 사용하는 대신 번역을 정의하는 값으로 field_value를 사용할 수 있습니다. 이를 사용하면 table_name에서 필드가 식별될 때 번역이 적용되고, field_name에는 field_value에서 정의된 것과 동일한 값이 포함됩니다.

필드는 field_value에 정의된 값과 정확하게 일치해야 합니다. 값의 하위 집합만 field_value와 일치하는 경우 번역이 적용되지 않습니다.

두 개의 번역 규칙이 동일한 레코드와 일치하는데 하나는 field_value, 다른 하나는 record_id와 일치하면 record_id의 규칙을 사용해야 합니다.

다음은 이 필드의 사용 방식을 결정하는 조건입니다.

  • table_namefeed_info와 같으면 금지됩니다.
  • record_id가 정의되어 있으면 금지됩니다.
  • record_id가 비어있는 경우 필수입니다.

attributions.txt

파일: 선택

필드 이름 유형 필수 여부 설명
attribution_id ID 선택 데이터 세트 또는 하위 세트의 속성을 나타냅니다. 이 필드는 번역에 유용합니다.
agency_id 참조 ID 선택 속성이 적용되는 대행사입니다. 하나의 agency_id, route_id 또는 trip_id 속성이 정의된 경우 다른 필드는 비어 있어야 합니다. 아무 항목도 지정되지 않으면 속성이 전체 데이터 세트에 적용됩니다.
route_id 참조 ID 선택 이 필드는 속성이 경로에 적용된다는 점을 제외하고 agency_id와 같은 방식으로 작동합니다. 여러 속성이 동일한 경로에 적용될 수 있습니다.
trip_id 참조 ID 선택 이 필드는 속성이 이동에 적용된다는 점을 제외하고 agency_id와 같은 방식으로 작동합니다. 여러 속성이 동일한 이동에 적용될 수 있습니다.
organization_name 텍스트 필수 데이터 세트가 속성을 나타내는 조직의 이름입니다.
is_producer 열거형 선택 조직의 역할은 제작자입니다. 허용되는 값은 다음과 같습니다.
0 또는 비어 있음: 조직에 이 역할이 없습니다.
1: 조직에 이 역할이 있습니다.
is_producer, is_operator, is_authority 필드 중 하나 이상이 1로 설정되어야 합니다.
is_operator 열거형 선택 조직의 역할이 운영자라는 점을 제외하고 is_producer와 같은 방식으로 작동합니다.
is_authority 열거형 선택 조직의 역할이 기관이라는 점을 제외하고 is_producer와 같은 방식으로 작동합니다.
attribution_url URL 선택 조직의 URL입니다.
attribution_email 이메일 선택 조직의 이메일입니다.
attribution_phone 전화번호 선택 조직의 전화번호입니다.