aspose.info
CS

E57 - datový formát Lidar Point Cloud

Aktualizováno

Co je soubor E57?

Soubor s příponou .e57 je kompaktní, na dodavatele neutrální formát souboru, který se používá pro ukládání a výměnu trojrozměrných (3D) obrazových dat, jako jsou mračna bodů, obrázky a metadata. Taková data se často vytvářejí pomocí systémů, jako jsou laserové skenery. Byl vyvinut podvýborem pro datovou interoperabilitu výboru ATSM E57 pro 3D zobrazovací systémy. E57 je open source a ukládá data 3D bodů, jejich atributy (jako je barva a intenzita) a 2D snímky zachycené 3D zobrazovacím systémem.

Formát souboru E57

Specifikace formátu souboru E57 jsou k dispozici na webových stránkách ATSM a lze na ně odkazovat pro vývojáře. Koncepční dokument a technické podrobnosti o formátu souboru E57 jsou k dispozici jako referenční materiál od Daniela Hubera. Data v souboru E57 jsou uložena v hierarchické stromové struktuře založené na XML, jak je znázorněno na následujícím obrázku. Na nízké úrovni se soubory E57 ukládají jako komprimované binární soubory, aby byla velikost souboru kompaktní.

Struktura souboru E57

Struktura souboru E57 je uvedena v následující tabulce.

Struktura souboru
Záhlaví
Binární sekce (body)
Binární sekce (body)
…
…
Binární sekce (obrázek)
XML sekce

Záhlaví E57

Záhlaví E57 je malá, 48bajtová binární struktura, která obsahuje důležité informace na úrovni souboru, jako je číslo verze a umístění sekce XML. Může být progamaticky reprezentován následovně.

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

Hierarchie XML

Část XML souboru E57 popisuje stromovou hierarchii pomocí podmnožiny standardního XML. To je založeno na osmi typech prvků E57, kde každý prvek je postaven pomocí sady základních stavebních bloků. Pět z těchto prvků E57 je koncových typů a tři z nich nejsou koncové.

Typy terminálů

Integer – celé číslo se znaménkem až do velikosti 63 bitů

„Float“ – ukládá jednoduché nebo dvojité přesné číslo s plovoucí desetinnou čárkou ve formátu IEEE 754-1985

ScaledInteger – Ukládá číslo se zlomkovou částí jako celé číslo spolu s měřítkem a offsetem

Řetězec - Ukládá textová data jako kódování UTF-8 a podporuje mezinárodní znaky

Blob – Ukládá neprůhledný blok binárních dat, který je interpretován čtenářem v závislosti na kontextu.

Neterminálové typy

“Struktura” - Obsahuje neuspořádanou sadu prvků E57 libovolného typu. Struktura E57 je analogická struktuře v programovacím jazyce C.

“Vektor” - Obsahuje uspořádaný seznam položek v podstatě identického typu. Příznak v prvku umožňuje, aby položky byly v případě potřeby omezeny tak, aby byly přesně identické.

CompressedVector – Obsahuje uspořádaný seznam identicky zadaných položek, které jsou komprimovány v binárním formátu. Stejně jako u datového typu Blob je reprezentace CompressedVector rozdělena na část XML a binární část.

Odkaz

Viz také