aspose.info
ES

E57 - Formato de datos de nube de puntos Lidar

Actualizado

¿Qué es un archivo E57?

Un archivo con la extensión .e57 es un formato de archivo compacto e independiente del proveedor que se utiliza para almacenar e intercambiar datos de imágenes tridimensionales (3D), como nubes de puntos, imágenes y metadatos. Dichos datos a menudo se crean con sistemas como escáneres láser. Fue desarrollado por el subcomité de interoperabilidad de datos del Comité ATSM E57 sobre sistemas de imágenes 3D. E57 es de código abierto y almacena datos de puntos 3D, sus atributos (como color e intensidad) e imágenes 2D capturadas por el sistema de imágenes 3D.

Formato de archivo E57

Las especificaciones del formato de archivo E57 están disponibles en el sitio web de ATSM y se pueden consultar para referencia del desarrollador. El documento conceptual y los detalles técnicos del formato de archivo E57 están disponibles como material de referencia de Daniel Huber. Los datos en un archivo E57 se guardan en una estructura de árbol jerárquico basada en XML, como se muestra en la siguiente imagen. A bajo nivel, los archivos E57 se guardan como archivos binarios comprimidos para que el tamaño del archivo sea compacto.

Estructura del archivo E57

La estructura de un archivo E57 es como se muestra en la siguiente tabla.

Estructura de archivos
Encabezado
Sección binaria (puntos)
Sección binaria (puntos)
…
…
Sección binaria (imagen)
Sección XML

Encabezado E57

El encabezado E57 es una pequeña estructura binaria de 48 bytes que contiene información crítica a nivel de archivo, como el número de versión y la ubicación de la sección XML. Se puede representar programáticamente de la siguiente manera.

struct E57FileHeader {
    char        fileSignature[8];
    uint32_t    majorVersion;
    uint32_t    minorVersion;
    uint64_t    filePhysicalLength;
    uint64_t    xmlPhysicalOffset;
    uint64_t    xmlLogicalLength;
    uint64_t    pageSize;
}

Jerarquía XML

La sección XML de un archivo E57 describe la jerarquía del árbol utilizando un subconjunto de XML estándar. Esto se basa en ocho tipos de elementos E57 donde cada elemento se construye utilizando un conjunto de bloques de construcción básicos. Cinco de estos elementos E57 son de tipo terminal y tres de ellos no son terminales.

Tipos de terminales

Integer - entero con signo de hasta 63 bits de tamaño

Float: almacena un número de punto flotante de precisión simple o doble en formato IEEE 754-1985

ScaledInteger: almacena un número con una parte fraccionaria como un entero junto con una escala y un desplazamiento

String: almacena datos de texto codificados en UTF-8 y admite caracteres internacionales

Blob: almacena un bloque opaco de datos binarios que el lector interpreta según el contexto.

Tipos no terminales

Estructura: contiene un conjunto desordenado de elementos E57 de cualquier tipo. Una estructura E57 es análoga a una estructura en el lenguaje de programación C.

Vector: contiene una lista ordenada de elementos escritos sustancialmente de forma idéntica. Una bandera en el elemento permite que los elementos se restrinjan para que se escriban de forma exactamente idéntica si se desea.

CompressedVector: contiene una lista ordenada de elementos con tipos idénticos, que están comprimidos en formato binario. Al igual que con el tipo de datos Blob, la representación de un CompressedVector se divide en una parte XML y una parte binaria.

Referencia

Véase también