1. General Coordinate Framework
    1. dataset uses a Virtual World Coordinate System. coordinate system based on the UTM Zone 50N(which covers the Beijing area), but with a specific modification
      1. Shift Origin: to protect geographic privacy, the coordinates are shifted by a fixed offset from the origin UTM coordinates
      2. Consistency: the same offset is applied to both the HD Map and the Infrastructure/Vehicle SCV files.
  2. Units and Axis Definitions
    1. Units: (x, y, z) and (length, width, height) are measured in meters.
    2. X-axis, East
    3. Y-axis: North
    4. Z-axis: Up
    5. Orientation: heading angle (radians) → 0 radians points toward the positive X-asis, and angle increases counter-clockwise
  3. Data-Specific Details
    1. intersect_id: an identifier (e.g., yizhuang#7-1_po) used to link the dynamic data to a specific intersection or area defined in the HD map.

In the HD Map JSON (yizhuang_hdmap1.json)


  1. CCTV영역 내 한 점의 절대 UTM 좌표 확보 → 모든 상대 좌표에 그 값을 더해 절대 좌표계로 바꿀 수 있음

    1. 로컬 좌표(x_local, y_local) → CCTV BEV 상의 미터 단위 좌표
    2. 전역 좌표(E_utm, N_utm) → 구글 지도나 수치지도를 통해 얻은 해당 지점의 실제 UTM좌표 (무조건 같은 Zone으로 통일해야함) → python의 pyproj을 통해 위경도를 UTM미터 좌표로 간단히 바꿀 수 있음
  2. 회전 각도 구하기 (North Alignment)

    1. CCTV BEV의 y축이 실제 북쪽(UTM Northing)과 일치하지 않을 확률이 높다. 두 기준점 P1, P2를 활용하여 이 각도 차이를 계산
      1. a_local = atan2(y2-y1, x2-x1), a_global = atan2(N2-N1,E2-E1)
      2. theta = a_global - a_local
      3. E,N은 cos, sin 과 E1, E2와 x_local, y_local을 통해 구할 수 있음
  3. BEV 정지 영상 생성

  4. 벡터 레이어 추출

    1. centerline, boundary를 따냄 (meter단위)
    2. 횡단보도나 정지선 같은 고정 시설물도 함께 다 주어야 is_intersection같은 속성 정의 가능
    3. —> UTM좌표로 위의 방식대로 바꿔야함.
  5. topology 정의

    1. 그려진 선들에 id를 부여하고, 연결 관계를 정의
    2. e.g., successors → 1번 세그먼트가 끝나면 2번 세그먼트로 이어진다. → yizhuang_hdmap1.json같은 그래프 구조가 완성됨
      1. lane segment: 한 줄의 주행 통로, 8차선? → 8개의 lane segment, 차선 하나하나가 그래프의 노드가 됨
      2. l_neighbor_id, r_neighbor_id는 내 옆에 주행 가능한 다른 차선이 있는가를 정의.
        1. 예를들어 내가 핸들 왼쪽으로 꺾으면 lane_ID_02로 갈 수 있구나를 파악 가능, 중앙선이나 인도의 경우 None