aspose.info
HU

E57 - Lidar Point Cloud adatformátum

Frissítve

Mi az E57 fájl?

Az .e57 kiterjesztésű fájl egy kompakt, gyártó-semleges fájlformátum, amelyet háromdimenziós (3D) képalkotási adatok, például pontfelhők, képek és metaadatok tárolására és cseréjére használnak. Az ilyen adatokat gyakran olyan rendszerekkel hozzák létre, mint például a lézerszkennerek. Ezt az ATSM E57 3D képalkotó rendszerekkel foglalkozó bizottságának adat-együttműködési albizottsága fejlesztette ki. Az E57 nyílt forráskódú, és a 3D-s pontadatokat, annak attribútumait (például szín és intenzitás), valamint a 3D képalkotó rendszer által rögzített 2D-s képeket tárolja.

E57 fájlformátum

Az E57 fájlformátum specifikációi az ATSM webhelyén érhetők el, és a fejlesztői referenciaként hivatkozhatnak rájuk. Az E57 fájlformátum koncepcióját és műszaki részleteit Daniel Huber referenciaanyagként találja meg. Az E57 fájlban lévő adatok egy XML alapú hierarchikus fastruktúrába kerülnek mentésre, ahogy az a következő képen látható. Alacsony szinten az E57 fájlokat tömörített bináris fájlként menti a rendszer, hogy a fájlméret kompakt legyen.

E57 Fájlszerkezet

Az E57 fájl szerkezete a következő táblázatban látható.

Fájlszerkezet
Fejléc
Bináris szakasz (pontok)
Bináris szakasz (pontok)
…
…
Bináris metszet (kép)
XML szakasz

E57 fejléc

Az E57 fejléc egy kicsi, 48 bájtos bináris struktúra, amely kritikus fájlszintű információkat tartalmaz, például a verziószámot és az XML szakasz helyét. Progamatikusan a következőképpen ábrázolható.

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

XML-hierarchia

Az E57 fájl XML része a fa hierarchiáját írja le a szabványos XML egy részhalmazával. Ez nyolc E57-es elemtípuson alapul, ahol minden elem egy sor alapvető építőelemből épül fel. Ezen E57 elemek közül öt terminál típusú, és ezek közül három nem terminál.

Termináltípusok

“Integer” - előjeles egész szám legfeljebb 63 bit méretű

“Float” - egy vagy dupla pontosságú lebegőpontos számot tárol IEEE 754-1985 formátumban

“ScaledInteger” – A tört részt tartalmazó számot egész számként tárolja a léptékkel és az eltolásokkal együtt

“String” – UTF-8 kódolású szöveges adatokat tárol, és támogatja a nemzetközi karaktereket

“Blob” – bináris adatok átlátszatlan blokkját tárolja, amelyet az olvasó a kontextustól függően értelmez.

Nem terminál típusok

“Struktúra” - Bármilyen típusú E57-elemek rendezetlen halmazát tartalmazza. Az E57 struktúra analóg a C programozási nyelv struktúrájával.

“Vector” – Lényegében azonosan beírt elemek rendezett listáját tartalmazza. Az elemben lévő jelző lehetővé teszi, hogy az elemeket szükség esetén pontosan azonosan lehessen beírni.

“CompressedVector” – Azonosan típusú elemek rendezett listáját tartalmazza, amelyek bináris formátumban vannak tömörítve. A Blob adattípushoz hasonlóan a CompressedVector ábrázolása XML-részre és bináris részre van felosztva.

Referencia

Lásd még