단일 데이터 매핑을 통해 여러 입력 파일을 처리합니다
일반적인 데이터 변환 작업은 대량으로 들어오는 여러 입력 파일을 처리해야 하는 경우가 많습니다. Altova MapForce는 최소한의 개입으로 파일 그룹을 처리할 수 있는 기능을 제공합니다. 예를 들어, 최근에 GPS 기능을 지원하는 디지털 카메라의 메모리 카드에서 특정 파일들을 복사했습니다. 각 .LOG 파일은 단일 경로에 대한 GPS 좌표를 포함하는 CSV 파일입니다.

저희는 CSV 데이터를 XML 기반의 .gpx 형식으로 변환하는 매핑 방식을 신속하게 설계했으며, 이 방식을 사용하여 세 개의 파일을 모두 처리하여 단일 실행으로 세 개의 결과 파일을 생성했습니다

먼저, 매핑 작업의 입력 구성 요소에 대한 속성 대화 상자에서 입력 파일 이름에 와일드카드 문자를 사용했습니다. 이렇게 하면 MapForce가 작업 디렉터리에 있는 와일드카드와 일치하는 모든 파일을 개별적으로 처리하도록 지시됩니다.

복잡한 변환 작업을 수행하거나 입력 파일이 매우 큰 경우, 먼저 고유한 파일 이름을 사용하여 변환 설정을 개발한 다음, 설정 결과에 만족하면 와일드카드를 사용하여 작업을 진행할 수 있습니다.
파일 경로 관련 함수들
내장된 MapForce 함수 라이브러리에는 출력 파일 이름을 관리하는 데 사용할 수 있는 파일 경로 관련 함수들이 포함되어 있습니다. 만약 하나의 출력 파일을 지정하면, 각 입력 데이터를 처리할 때마다 새로운 데이터가 해당 파일에 추가됩니다.

파일 경로 함수를 다른 문자열 함수와 함께 사용하면 출력 파일의 이름과 위치를 완벽하게 제어할 수 있습니다. 저희는 출력 파일을 입력 파일과 동일한 폴더에 저장하고, 더 자세한 파일 이름을 사용하며, ".gpx" 확장자를 사용하기로 결정했습니다.
아래에 제시된 매핑 과정은 문자열 연결 함수와 파일 경로 함수를 사용하여 1211190.LOG 파일로부터 출력 파일인 1211190converted.gpx를 생성하는 방식입니다. 이와 유사한 방식으로 다른 파일들도 처리될 수 있습니다.

파일 경로 함수를 사용하여 문자열을 생성하고, 이를 출력 결과에 삽입할 수도 있습니다. .gpx 파일의 XML 스키마에는 메타데이터 설명 요소가 포함되어 있습니다. 우리는 입력 파일 이름을 메타데이터에 삽입하여 출력 파일과 원본 데이터를 명확하게 연결하기로 결정했습니다. 이러한 방식을 사용하면 출력 파일 자체가 문서화되므로, 예상치 못한 출력 결과를 원본 데이터로 추적해야 할 경우 디버깅에 도움이 될 수 있습니다.
아래에 표시된 매핑 부분은 소스 파일 이름을 문자열에 삽입한 다음, 해당 문자열을 메타데이터에 연결합니다 <desc> 요소:

결과적으로 생성된 설명은 "매핑 결과 미리보기"의 4번째 줄에 표시됩니다
[파일 이름과 함께 출력 데이터 미리보기 이미지]
입력 데이터 필터링
이 데이터 매핑의 핵심은 입력 파일에 대한 필터링 과정이었습니다. 카메라의 GPS 로그 파일은 National Marine Electronics Association (NMEA)의 규격에 따라 기록됩니다. 아래에 입력 파일 중 일부를 보여드립니다

처음 데이터 포인트를 기록한 후, 각 데이터 포인트는 두 개의 NMEA 문장으로 표현됩니다. 각 문장의 첫 번째 필드에는 문장의 종류가 명시되어 있습니다. GGA 문장에는 시간, 위도, 경도, 고도, 그리고 위치 정보의 정확도에 대한 추가 데이터가 포함됩니다. RMC 문장에는 시간, 위도, 경도, 그리고 날짜가 포함됩니다.
RMC 문장은 .gpx 파일을 생성하는 데 필요한 최소한의 데이터를 포함합니다 <trkpt> 따라서, 입력 데이터에서 특정 조건을 만족하는 행만 선택하기 위해 필터를 사용할 수 있습니다. 아래 예시를 참고하십시오

만약 행의 첫 번째 필드에 있는 메시지 유형이 "$GPRMC"를 포함한다면, 해당 행은 처리 과정을 거칩니다. 그렇지 않으면, 해당 행은 무시됩니다.
입력 파일에 포함된 실제 데이터도 일부 수정이 필요했습니다. 각 위도와 경도에 대해, 원본 데이터에서 도, 분, 초를 나타내는 여러 필드를 결합하고 이를 소수점으로 변환해야 했습니다. 또한, 시간과 날짜 필드를 결합하여 결과를 .gpx 형식에서 요구하는 ISO 8601 형식으로 기록해야 했습니다. 예를 들어, "2012-11-19T20:43:23Z"와 같은 형식입니다. 이러한 변환 작업을 사용자 정의 함수로 정의하여 복잡성을 캡슐화하고, 메인 매핑 프로그램과 분리했습니다.
이 매핑 작업은 이전 게시물에서 정의한 getElevationUS 사용자 함수를 재사용할 수 있는 기회를 제공합니다. 해당 게시물은 "예상치 못한 문제 해결: Altova MissionKit으로 숫자 형식의 수수께끼 풀기"입니다. 이번에는 고도 데이터를 소수점 세 자리까지 반올림하여, 가장 가까운 밀리미터 단위로 표현했습니다.
Camerlog에서 GPX 데이터로 변환하는 과정에서 사용자 함수를 사용하는 핵심 부분은 다음과 같습니다

다음은 출력 파일 중 하나로, <trk>, <trkseg>, 그리고 여러 개의 <trkpt> 요소들이 포함되어 있습니다.

MapForce의 출력 메뉴에는 .gpx XML 스키마에 따라 출력 파일을 검증할 수 있는 다양한 옵션이 제공됩니다

자신의 데이터 매핑을 위해 입력 파일을 일괄 처리하려면, Altova MapForce 를 사용하고 싶으신가요 무료 평가판을 다운로드하려면 여기를 클릭하세요. .