2. Log Sync

Log Sync 개요

Log Sync는 드론이 촬영한 데이터를 분석 가능한 형태로 정렬하고 동기화하는 과정을 의미합니다. 드론으로 촬영하면 다음과 같은 세 가지 주요 파일이 생성됩니다.

Video


드론 카메라로 촬영된 원본 영상

SRT


영상에 대한 메타데이터가 저장된 파일로, 드론 모델에 따라 데이터 형식이 다릅니다.

포함된 정보:

  • 초점 거리

  • 프레임 번호 (Frame Number)

  • 위도, 경도 (GPS 좌표)

  • 카메라의 ISO 값

```
1
00:00:00,000 --> 00:00:00,016
<font size="28">FrameCnt: 1, DiffTime: 16ms
2024-10-01 09:53:31.486
[iso: 170] [shutter: 1/640.0] [fnum: 2.8] [ev: 0] [color_md: default] [focal_len: 24.00] [latitude: 36.67235] [longitude: 129.45288] [rel_alt: 70.500 abs_alt: 103.186] [ct: 4800] </font>

2
00:00:00,016 --> 00:00:00,032
<font size="28">FrameCnt: 2, DiffTime: 16ms
2024-10-01 09:53:31.518
[iso: 170] [shutter: 1/640.0] [fnum: 2.8] [ev: 0] [color_md: default] [focal_len: 24.00] [latitude: 36.67235] [longitude: 129.45288] [rel_alt: 70.500 abs_alt: 103.186] [ct: 4800] </font>

3
00:00:00,032 --> 00:00:00,049
<font size="28">FrameCnt: 3, DiffTime: 17ms
2024-10-01 09:53:31.524
[iso: 170] [shutter: 1/640.0] [fnum: 2.8] [ev: 0] [color_md: default] [focal_len: 24.00] [latitude: 36.67235] [longitude: 129.45288] [rel_alt: 70.500 abs_alt: 103.186] [ct: 4800] </font>

```

DJI Flight Log


드론 비행 전반에 대한 정보를 포함한 파일로, 비행 기록을 상세히 확인할 수 있습니다.

포함된 정보:

  • 비행 시간

  • 고도

  • 촬영 여부

  • 카메라의 오일러 각도 (Roll, Pitch, Yaw)

Log Snyc의 역할


Log Sync는 드론이 촬영한 데이터들(영상, SRT 파일, DJI Flight Log 파일)의 시간 정보를 비교하여 각 데이터를 일치시키고 동기화하는 작업입니다. 이를 통해 각 파일에 포함된 정보를 연결하여 하나의 통합된 데이터셋으로 생성할 수 있습니다.

adjust_log 주요 함수

get_log


이 함수는 DJI Flight Log 파일을 읽고, 필요한 열만 추출한 후, 시간 정보를 변환하여 사용 가능한 데이터프레임을 반환합니다.

주요 작업:

  1. CSV 파일 읽기:

    1. pd.read_csv로 파일을 읽고 필요한 열만 추출합니다.

  2. 파일명에서 시간 정보 추출:

    1. 파일명에 포함된 날짜와 시간을 기반으로 비행 시작 시간을 가져옵니다.

  3. 시간 정보 변환:

    1. 비행 시간(OSD.flyTime)을 기준으로 각 데이터의 타임스탬프를 계산하고, 이를 CUSTOM.date [local] 열에 추가합니다.

  4. 불필요한 열 제거:

    1. 비행 시간 정보를 사용한 후 OSD.flyTime [s] 열을 제거합니다.

get_srt


get_srt_v2 함수는 다양한 형식의 SRT 파일에서 시간, 위도, 경도, 초점 거리 데이터를 유연하게 추출하여 데이터프레임으로 변환하는 역할을 합니다.

이 함수는 드론 기종마다 SRT 파일의 형식이 다를 수 있다는 점을 고려하여 설계되었습니다.

주요 작업:

  1. SRT 파일 읽기

    1. 주어진 SRT 파일을 줄 단위로 읽습니다.

  2. 패턴 기반 데이터 추출

    1. 정규 표현식을 사용하여 time_now, latitude, longitude, focal_length 값을 추출합니다.

    2. 드론 기종마다 데이터 형식이 다를 수 있으므로 패턴을 유연하게 처리합니다.

  3. 결과 데이터프레임 생성

  4. 추출된 데이터를 기반으로 time_now, latitude, longitude, focal_length 열을 가진 데이터프레임을 생성합니다.

log_sync


이 함수는 SRT 파일 데이터와 DJI Flight Log 데이터를 시간 기반으로 동기화합니다.

주요 작업:

  1. 시간 형식 변환:

    1. srt_df와 DJI_Record_df의 시간 정보를 datetime 형식으로 변환합니다.

  2. 가장 가까운 시간 데이터 찾기:

    1. 각 SRT의 time_now에 대해 DJI 데이터의 CUSTOM.date [local]과 가장 가까운 시간을 찾습니다.

  3. 시간 차이에 따른 조건:

    1. 시간 차이가 1초 이상인 경우 빈 데이터를 반환하고, 아니면 해당 행을 선택합니다.

  4. 결과 병합:

    1. SRT 데이터프레임과 DJI 데이터프레임의 동기화된 데이터를 병합하여 최종 결과를 반환합니다.

Last updated