aspose.info
FI

E57 - Lidar Point Cloud Data Format

Päivitetty

Mikä on E57-tiedosto?

Tiedosto, jonka laajennus on .e57, on kompakti, toimittajaneutraali tiedostomuoto, jota käytetään kolmiulotteisen (3D) kuvantamisdatan, kuten pistepilvien, kuvien ja metatietojen, tallentamiseen ja vaihtoon. Tällaiset tiedot luodaan usein järjestelmillä, kuten laserskannereilla. Sen on kehittänyt ATSM E57 -komitean 3D-kuvantamisjärjestelmiä käsittelevä tietojen yhteentoimivuuden alakomitea. E57 on avoimen lähdekoodin lähde, ja se tallentaa 3D-pistetiedot, sen attribuutit (kuten värin ja intensiteetin) ja 2D-kuvat 3D-kuvausjärjestelmän tallentamina.

E57 tiedostomuoto

E57-tiedostomuodon tekniset tiedot ovat saatavilla ATSM-verkkosivustolla, ja niihin voi viitata kehittäjille. Konseptipaperi ja E57-tiedostomuodon tekniset tiedot ovat saatavilla viitemateriaalina {{HYPERLINKKI}}:sta. E57-tiedoston tiedot tallennetaan XML-pohjaiseen hierarkkiseen puurakenteeseen seuraavan kuvan mukaisesti. Matalalla tasolla E57-tiedostot tallennetaan pakattuina binääritiedostoina, jotta tiedostokoko on pieni.

E57 tiedostorakenne

E57-tiedoston rakenne on seuraavan taulukon mukainen.

Tiedoston rakenne
Otsikko
Binääriosa (pisteet)
Binääriosa (pisteet)
…
…
Binääriosa (kuva)
XML-osio

E57 Otsikko

E57-otsikko on pieni, 48-tavuinen binaarirakenne, joka sisältää tärkeitä tiedostotason tietoja, kuten versionumeron ja XML-osan sijainnin. Se voidaan esittää progamaattisesti seuraavasti.

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

XML-hierarkia

E57-tiedoston XML-osio kuvaa puuhierarkiaa käyttämällä vakio-XML:n osajoukkoa. Tämä perustuu kahdeksaan E57-elementtityyppiin, joissa jokainen elementti on rakennettu käyttämällä ydinrakennuspalikoiden sarjaa. Näistä E57-elementeistä viisi on päätetyyppiä ja kolme ei-päätelaitteita.

Päätetyypit

Kokonaisluku - etumerkillinen kokonaisluku, jonka koko on enintään 63 bittiä

Float - tallentaa yhden tai kaksinkertaisen tarkkuuden liukulukunumeron IEEE 754-1985 -muodossa

ScaledInteger - Tallentaa luvun, jossa on murto-osa kokonaislukuna, sekä asteikon ja siirtymän

String - Tallentaa tekstitiedot UTF-8-koodattuina ja tukee kansainvälisiä merkkejä

Blob - Tallentaa läpinäkymättömän lohkon binääridataa, jonka lukija tulkitsee kontekstin mukaan.

Ei-päätetyypit

Rakenne - Sisältää järjestämättömän joukon minkä tahansa tyyppisiä E57-elementtejä. E57-rakenne on analoginen C-ohjelmointikielen rakenteen kanssa.

Vektori - Sisältää järjestetyn luettelon olennaisesti identtisesti kirjoitetuista kohteista. Lippu elementissä sallii kohteiden rajoittamisen haluttaessa täsmälleen identtisiksi kirjoitettavaksi.

CompressedVector - Sisältää järjestetyn luettelon identtisesti kirjoitetuista kohteista, jotka on pakattu binäärimuotoon. Kuten Blob-tietotyypissä, CompressedVectorin esitys on jaettu XML-osaan ja binääriosaan.

Viite

Katso myös