대중교통 데이터 GTFS - RT 만져봐!

공중 교통


대중교통 개방 데이터 협의회에 참석한 경영자들이 보유한 데이터를 모아 대중에게 공개하는 서비스다.
철도를 필두로 버스, 비행기, 선박 등 정적, 동적 데이터를 이용할 수 있다.

도쿄도 교통국의 API를 사용해 보도록 하겠습니다.


사전 준비물

  • 대중교통 개방 데이터 센터의 개발자 로그인(로그인은 여기 ※ 사용자 로그인 완료 시 최대 2일 정도 소요되지만, 1일 후 승인된 메일은 사용할 수 있습니다.
  • Docker 환경, docker-compose 환경
  • MacOS의 경우
  • WindowsOS의 경우
  • 액세스 토큰을 가져오는 방법


    ① 개발자 사이트 방문
    ② 계정 표시줄에서 액세스 영패 확인, 추가 페이지 열기 (이미지가 추가된 빨간색 상자)

    ③ 기본 응용 프로그램 표시줄의 접근 영패 복사 (추가 이미지의 검은 테이프 부분)

    환경 구축


    ① GTFS Smart 도구 복제
    단말
    $ git clone https://github.com/Kaas59/GTFS-Python
    
    ② 액세스 토큰을 환경 변수로 설정
    단말
    # 作業ディレクトリに入る
    $ cd GTFS-Python
    
    # .envファイルを作成
    $ cp .env.sample .env
    
    # .envファイルにアクセストークンをペースト
    $ nano .env
    
    .env
    token=ここにアクセストークンをペースト
    
    ② Docker 이미지 구축
    단말
    # makeコマンド環境がある人
    $ make build
    
    # makeコマンド環境が無い人
    $ docker-compose build
    
    ③ 컨테이너 가동
    단말
    # makeコマンド環境がある人
    $ make up
    
    # makeコマンド環境が無い人
    $ docker-compose up
    
    ④ 컨테이너 방문
    단말
    # makeコマンド環境がある人
    $ make exec
    
    # makeコマンド環境が無い人
    $ docker-compose exec python3 bash
    

    시험적으로 사용하다


    이번에 사용한 데이터는'도쿄도 교통국 버스의 위치 정보'다.
    이 데이터는 GTFS-RT 형식으로 제공됩니다.또 데이터의 형식은 구글이 규정한'Protocol Buffers'의 형식으로 2진법으로 발송됐다.따라서 원형을 유지하면 사람이 읽을 수 없기 때문에 디코딩을 해서 이해할 수 있는 상태로 만들어야 한다.

    실제 위치 정보 얻기


    터미널 (컨테이너에서)
    # makeコマンド環境がある人
    $ make gtfs
    
    # makeコマンド環境が無い人
    $ python3 main.py
    

    마지막


    이번에 사용하는 대중교통 개방 데이터센터 외에도 다양한 데이터를 제공하는 곳이 있으니 꼭 사용하세요.

    또한 "이번에 사용된 프로토콜에 대한 Buffers"


    Protocol Buffers는 API를 통해 데이터를 보내기 전에 특정한 형식에 따라 인코딩되며, 통상적으로 이 형식을 모르면 디코딩이 상당히 어렵다.그러나 그 상세한 형식은 대중교통 오프 데이터 센터에서 공개되지 않았다.그러나 GTFS-JP와 국토교통성은 일본 형식의 샘플(구글이 나눠준 것과 동일)을 나눠주고 그곳을 이용해 장식할 수 있다.

    좋은 웹페이지 즐겨찾기