.E57 파일이란?
확장자가 .e57인 파일은 점 구름, 이미지 및 메타데이터와 같은 3차원(3D) 이미징 데이터를 저장하고 교환하는 데 사용되는 공급업체 중립적인 소형 파일 형식입니다. 이러한 데이터는 종종 레이저 스캐너와 같은 시스템으로 생성됩니다. 3D 이미징 시스템에 관한 ATSM E57 위원회의 데이터 상호 운용성 소위원회에서 개발했습니다. E57은 오픈 소스이며 3D 이미징 시스템에서 캡처한 3D 포인트 데이터, 속성(예: 색상 및 강도) 및 2D 이미지를 저장합니다.
E57 파일 형식
E57 파일 형식 사양은 ATSM 웹사이트에서 제공되며 개발자 참조용으로 참조할 수 있습니다. E57 파일 형식의 개념 문서 및 기술 세부 사항은 Daniel Huber에서 참조 자료로 사용할 수 있습니다. E57 파일의 데이터는 다음 이미지와 같이 XML 기반 계층 트리 구조로 저장됩니다. 낮은 수준에서 E57 파일은 압축된 바이너리 파일로 저장되어 파일 크기를 압축합니다.
E57 파일 구조
E57 파일의 구조는 다음 표와 같습니다.
파일 구조 |
---|
헤더 |
이진 섹션(포인트) |
이진 섹션(포인트) |
… |
… |
이진 섹션(이미지) |
XML 섹션 |
E57 헤더
E57 헤더는 버전 번호 및 XML 섹션의 위치와 같은 중요한 파일 수준 정보를 포함하는 작은 48바이트 바이너리 구조입니다. 다음과 같이 프로그래매틱으로 나타낼 수 있습니다.
struct E57FileHeader {
char fileSignature[8];
uint32_t majorVersion;
uint32_t minorVersion;
uint64_t filePhysicalLength;
uint64_t xmlPhysicalOffset;
uint64_t xmlLogicalLength;
uint64_t pageSize;
}
XML 계층
E57 파일의 XML 섹션은 표준 XML의 하위 집합을 사용하여 트리 계층 구조를 설명합니다. 이것은 각 요소가 핵심 빌딩 블록 세트를 사용하여 구축되는 8개의 E57 요소 유형을 기반으로 합니다. 이 E57 요소 중 5개는 단자 유형이고 이 중 3개는 비단자입니다.
터미널 유형
‘정수’ - 최대 63비트 크기의 부호 있는 정수
‘Float’ - IEEE 754-1985 형식으로 단정밀도 또는 배정밀도 부동 소수점 숫자를 저장합니다.
‘ScaledInteger’ - 소수 부분이 있는 숫자를 스케일 및 오프셋과 함께 정수로 저장합니다.
String
- 텍스트 데이터를 UTF-8 인코딩으로 저장하고 국제 문자를 지원합니다.
Blob
- 컨텍스트에 따라 판독기가 해석하는 불투명한 바이너리 데이터 블록을 저장합니다.
비 터미널 유형
‘구조’ - 모든 유형의 정렬되지 않은 E57 요소 집합을 포함합니다. E57 구조는 C 프로그래밍 언어의 구조와 유사합니다.
‘벡터’ - 실질적으로 동일하게 유형이 지정된 항목의 정렬된 목록을 포함합니다. 요소의 플래그를 사용하면 원하는 경우 항목을 정확히 동일하게 입력하도록 제한할 수 있습니다.
CompressedVector
- 이진 형식으로 압축된 동일한 유형의 항목 목록을 포함합니다. Blob 데이터 유형과 마찬가지로 CompressedVector의 표현은 XML 부분과 이진 부분으로 나뉩니다.