aspose.info
DA

E57 - Lidar Point Cloud Data Format

Opdateret

Hvad er en E57 fil?

En fil med filtypenavnet .e57 er et kompakt, leverandørneutralt filformat, der bruges til lagring og udveksling af tredimensionelle (3D) billeddata såsom punktskyer, billeder og metadata. Sådanne data oprettes ofte med systemer som laserscannere. Det blev udviklet af Data Interoperability-underudvalget under ATSM E57-udvalget for 3D-billeddannelsessystemer. E57 er open source og gemmer 3D-punktdata, dets egenskaber (såsom farve og intensitet) og 2D-billeder, som er optaget af 3D-billeddannelsessystemet.

E57 filformat

E57-filformatspecifikationerne er tilgængelige på ATSM-webstedet og kan henvises til for udviklerens reference. Konceptpapiret og de tekniske detaljer for E57-filformatet er tilgængelige som referencemateriale af Daniel Huber. Dataene i en E57-fil gemmes i en XML-baseret hierarkisk træstruktur som vist på følgende billede. På lavt niveau gemmes E57-filerne som komprimerede binære filer for at gøre filstørrelsen kompakt.

E57 Filstruktur

Strukturen af en E57-fil er som vist i følgende tabel.

Filstruktur
Overskrift
Binært afsnit (punkter)
Binært afsnit (punkter)
…
…
Binært afsnit (billede)
XML sektion

E57 Header

E57-headeren er en lille, 48-byte binær struktur, der indeholder vigtige oplysninger på filniveau, såsom versionsnummeret og placeringen af XML-sektionen. Det kan progamatisk repræsenteres som følger.

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

XML-hierarki

XML-sektionen i en E57-fil beskriver træhierarkiet ved hjælp af en delmængde af standard XML. Dette er baseret på otte E57-elementtyper, hvor hvert element er bygget op ved hjælp af et sæt kernebyggeklodser. Fem af disse E57-elementer er terminaltyper, og tre af disse er ikke-terminale.

Terminaltyper

Heltal - heltal med fortegn op til 63 bit i størrelse

Float - gemmer et enkelt eller dobbelt præcision flydende kommanummer i IEEE 754-1985-format

ScaledInteger - Gemmer et tal med en brøkdel som et heltal sammen med en skala og offset

String - Gemmer tekstdata som UTF-8-kodet og understøtter internationale tegn

Blob’ - Gemmer en uigennemsigtig blok af binære data, der fortolkes af læseren afhængigt af konteksten.

Ikke-terminaltyper

Struktur - Indeholder et uordnet sæt E57-elementer af enhver type. En E57-struktur er analog med en struktur i programmeringssproget C.

Vektor - Indeholder en ordnet liste over i det væsentlige identisk indtastede elementer. Et flag i elementet gør det muligt at begrænse elementerne til at være nøjagtigt identisk skrevet, hvis det ønskes.

CompressedVector - Indeholder en ordnet liste over identisk indtastede elementer, som er komprimeret i binært format. Som med Blob-datatypen er repræsentationen af en CompressedVector opdelt i en XML-del og en binær del.

Reference

Se også