aspose.info
LT

E57 – „Lidar Point“ debesies duomenų formatas

Atnaujinta

Kas yra E57 failas?

Failas su plėtiniu .e57 yra kompaktiškas, pardavėjo atžvilgiu neutralus failo formatas, naudojamas trimačiams (3D) vaizdo duomenims, pvz., taškų debesims, vaizdams ir metaduomenims, saugoti ir jais keistis. Tokie duomenys dažnai sukuriami tokiomis sistemomis kaip lazeriniai skaitytuvai. Jį sukūrė ATSM E57 3D vaizdo sistemų komiteto Duomenų sąveikos pakomitetis. E57 yra atvirojo kodo ir saugo 3D taškų duomenis, jo atributus (pvz., spalvą ir intensyvumą) ir 2D vaizdus, kuriuos užfiksavo 3D vaizdo sistema.

E57 failo formatas

E57 failo formato specifikacijas galima rasti ATSM svetainėje ir jas galima remtis kūrėjo nuoroda. Koncepcinį dokumentą ir techninę E57 failo formato informaciją kaip informacinę medžiagą rasite Daniel Huber. E57 failo duomenys išsaugomi XML pagrįstoje hierarchinėje medžio struktūroje, kaip parodyta toliau pateiktame paveikslėlyje. Esant žemam lygiui, E57 failai išsaugomi kaip suspausti dvejetainiai failai, kad failo dydis būtų kompaktiškas.

E57 failo struktūra

E57 failo struktūra yra tokia, kaip parodyta šioje lentelėje.

Failo struktūra
Antraštė
Dvejetainė atkarpa (taškai)
Dvejetainė atkarpa (taškai)
…
…
Dvejetainė dalis (vaizdas)
XML skyrius

E57 antraštė

E57 antraštė yra maža, 48 baitų dvejetainė struktūra, kurioje yra svarbi failo lygio informacija, pvz., versijos numeris ir XML sekcijos vieta. Progamatiškai jį galima pavaizduoti taip.

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

XML hierarchija

E57 failo XML skyriuje aprašoma medžio hierarchija naudojant standartinio XML poaibį. Tai pagrįsta aštuoniais E57 elementų tipais, kur kiekvienas elementas yra sudarytas naudojant pagrindinių kūrimo blokų rinkinį. Penki iš šių E57 elementų yra terminalų tipai, o trys iš jų yra negaliniai.

Terminalų tipai

Sveikasis skaičius – iki 63 bitų dydžio sveikasis skaičius su ženklu

Float – išsaugo vieno arba dvigubo tikslumo slankiojo kablelio skaičių IEEE 754-1985 formatu

ScaledInteger – išsaugo skaičių su trupmenine dalimi kaip sveikąjį skaičių kartu su masteliu ir poslinkiu

Eilutė – saugo tekstinius duomenis kaip UTF-8 koduotę ir palaiko tarptautinius simbolius

Blob – saugo nepermatomą dvejetainių duomenų bloką, kurį skaitytojas interpretuoja atsižvelgdamas į kontekstą.

Neterminalų tipai

Struktūra – turi netvarkingą bet kokio tipo E57 elementų rinkinį. E57 struktūra yra analogiška C programavimo kalbos struktūrai.

Vektorius – yra sutvarkytas iš esmės identiškai įvestų elementų sąrašas. Elemento vėliavėlė leidžia apriboti elementus, kad jie būtų įvesti tiksliai identiškai, jei pageidaujama.

CompressedVector – yra sutvarkytas identiškai įvestų elementų, suglaudintų dvejetainiu formatu, sąrašas. Kaip ir naudojant Blob duomenų tipą, CompressedVector atvaizdas yra padalintas į XML ir dvejetainę dalis.

Nuoroda

Taip pat žiūrėkite