Tekstiformaatilla voidaan lukea ja kirjoittaa tekstipohjaisia tiedostoformaatteja, jotka perustuvat peräkkäisiin pistetietoihin. Yksi pistetieto on useimmiten yksi tekstirivi, mutta voi olla myös jaettuna useammalle riville. Olennaista on, että jokainen pistetieto on rakenteeltaan samanlainen.
Vektoriaineistojen lisäksi voidaan muuntimella lukea ja kirjoittaa myös kairauspisteitä ja niiden ominaisuuksia, mutta ei yksittäsiä syvyyshavaintoja.
Tekstiformaatin alkutiedosto voi sisältää makroja ja tiedoston ominaisuustietoja. Koska viivojen koodaus perustuu viivanumeroihin, peräkkäisistä samannumeroisista viivoista jälkimmäisen T2-kenttään lisätään loppuun merkki X.
Määrittely kirjoitetaan isoon tekstikenttään ja sen yläpuolella näytetään esimerkkimuotoilu, jossa kunkin ominaisuuden arvona on sen järjestysnumero. Koordinaateille X, Y ja Z näytetään vakio reaalilukuarvo. Formaattimäärittely voidaan jakaa useammalle riville, mutta mahdolliset välilyönnit kenttien välillä on muistettava jättää määrittelyyn rivin loppuun.
Kirjoittaa kenttien tunnukset otsikkoriville tai luettaessa ohittaa ensimmäisen rivin.
Jos kooditiedosto on annettu, koodikenttien nimet haetaan sieltä ja tunnetuille laskentaominaisuuksille käytetään ohjelman omia nimiä. Koska kooditiedostossa olevat ominaisuuksien nimet ovat koodikohtaisia, niitä ei käytetä yleisellä otsikkorivillä.
Käyttää kirjoittaessa pilkkua desimaalierottimena. Luettaessa desimaalierottimena ymmärretään sekä pilkku että piste.
Kirjoittaa myös tekstipisteet samassa muodossa kuin muutkin pisteet. Itse teksti löytyy ominaisuudesta TEXT.
Sallii pisteiden lukemisen vaikkei pisteillä olisi koordinaattitietoa. Pisteille pakotetaan X- ja Y-koordinaatiksi 0, jos koordinaatteja ei voitu lukea tiedostosta.
Lukee ja kirjoittaa ominaisuudet kohteen jälkeen omille riveilleen. Kaikki pisteiden ja viivojen ominaisuudet, jotka eivät ole varsinaisessa määrittelyssä kirjoitetaan. Viivapisteiden ominaisuuksia ei kirjoiteta. Ominaisuusrivi alkaa huutomerkillä ja sisältää ominaisuudet tunnuksen ja arvon yhtäsuuruusmerkillä erotettuna (esim. !ATTR=123). Ominaisuudet tulkataan takaisin vain, jos tämä Ominaisuudet-asetus on päällä lukumuuntimessa.
Kirjoittaa kaikki poikkileikkaukset. Oletuksena kirjoitetaan vain näkyvä poikkileikkaus.
Lukee ja kirjoittaa vain viivat. Koordinaatit X, Y ja Z viittaavat tällöin viivan tai alueen referenssipisteen koordinaatteihin. Ominaisuuksina luetaan ja kirjoitetaan vain viivan ominaisuudet. Viivan pisteet voidaan lukea ja kirjoittaa kohdassa Viivat selitetyllä hakasulkusyntaksilla.
Lukee pisteet väripisteinä, jotka piirretään vakiokokoisina värillisinä ruutuina. Väri siirretään pisteen piirtotiedoksi #COLOR-makrolla ja oletuskoko lasketaan keskimääräisen pistetiheyden perusteella. Koko tai sen kerroin voidaan antaa myös kenttäasetusten SymbolSize-asetuksella.
Jos tämä asetus on päällä kun kirjoitetaan kaaria, niin kaaria ei muuteta kolmen pisteen kaariksi.
Yksinkertainen testisuodatus, jolla voidaan tiedostosta lukea pisteitä annetuin välein. Vaikuttaa vasta lopuksi luokkien ja koordinaattirajojen suodattamisen jälkeen.
Viivasuodatuksessa voidaan antaa viivoja sisältävä vektoritiedosto ja hakuetäisyys viivoista. Hakuetäisyys laitetaan ylempään kenttään ja alempaan haetaan viivatiedosto, jonka on oltava 3D-binäärimuodossa. Suodatus tarkistaa tiedoston kaikki viivat. Jos viiva on sulkeutuva alue, sisäpuolelle jäävät pisteet hyväksytään. Muussa tapauksessa hyväksytään pisteen annetun hakuetäisyyden päässä viivasta.
Näyttää esimerkkirivin tekstieditorissa seuraavassa muodossa:
T3 T4 X Y Z Koodi Tunnus X Y Z 1 2 12345.678 12345.678 12.345 123456789012345678901234567890123456789012345678901234567890 1 2 3 4 5 6
Ensimmäinen otsikkorivi käyttää ominaisuuksien tunnuksia ja toinen nimiä. Varsinainen esimerkkirivi on kolmantena. Kaksi alinta riviä näyttävät sarakelaskurin.
Avaa formaatin määrittelyn editoitavassa valintalistassa. Jokainen tietue näytetään omalla rivillään ja niitä voidaan editoida esitysmuodon editoinnilla.
Tekstiformaatti perustuu peräkkäisiin tietuemäärittelyihin, joista jokainen määrittelee yhden tiedon (ominaisuus, koordinaatti) formaatin ja sijainnin. Peräkkäiset tietuemäärittelyt erotetaan toisistaan joko välilyönnillä tai muulla erotinmerkillä. Pääsääntöisesti sama formaattimäärittely toimii sekä lukemisessa että kirjoittamisessa. Käytännössä tämä vaatii, että kirjoitettavat tietueet on eroteltu jotenkin järkevästi.
Esimerkiksi perinteinen Geonic-formaatti:
9 0 234 3199 6697091.114 3444140.918 11.545
käsitellään seuraavalla formaattimäärittelyllä:
$T1@8< $T2@8< $T3@8< $T4@8< $X%.3@14 $Y%.3@14 $Z%.3@14
Edellisessä määritellään formaatti neljällä koodikentällä (T1-T4), kukin katkaistuna kahdeksan merkin levyisiin kenttiin ja sen jälkeen koordinaatit X, Y ja Z 14 merkin levyissä kentissä kolmella desimaalilla.
Formaatti osaa asteiden, minuuttien ja sekunttien käsittelyn. Pisteiden X- ja Y-koordinaatteina olevia asteita voidaan lukea ja kirjoittaa eri muodoissa ja eri yksiköihin jaettuna. Tämä toimii yhdessä koordinaattimunnoksen kanssa mahdollistaen maantieteellisten koordinaattien lukemisen ja kirjoittamisen automatisoinnin. Lisäksi tekstiformaatilla voi lukea ja kirjoittaa myös kairaus- sekä profiilipisteitä.
Yksittäisen tietueen määrittely koostuu seuraavista osista:
$NAME@WIDTH=FILL%FORMAT.DEC $ NAME koodin/ominaisuuden/koordinaatin nimi (T1, MAT, X). % FORMAT aste/minuutti/sekuntti formaattimäärittely. . DEC desimaalien määrä, oletus muuntimen asetuksista. @ WIDTH kentän leveys, negatiivinen asemoidaan vasemmalle. = FILL kentän täyttömerkki, oletuksena välilyönti.
Ominaisuuden määre $ voidaan korvata määreellä £ jolloin viiva- tai profiilipisteen ominaisuutta haetaan kirjoitettaessa myös viivalta tai profiililta mikäli sitä ei itse pisteeltä löydy. Luettaessa määrellä £ merkitty ominaisuus vastaavasti sijoitetaan viivalle tai profiilille. Hajapisteiden kanssa £ toimii täsmälleen samalla tavalla kuin $.
Täyttömäärittely (FILL) katsotaan leveysmäärittelyn (WIDTH) lisämääreeksi ja desimaalien määrä (DEC) formaatin (FORMAT) lisämääreeksi. Lisäksi tietuemäärittelyn perässä voi olla erikoismerkkejä tiedon katkaisuun ja erotinmerkkeihin liittyen. Tietue voi myös olla lainaus- tai heittomerkeillä rajattu vakioteksti.
Tietueen nimi (NAME) voi olla joko koodikentän nimi (T1-T6), mikä tahansa ominaisuuden nimi (MAT, DATE, TIME) tai jokin seuraavista koordinaateista:
X, Y, Z Pisteen X, Y tai Z-koordinaatti. A, B Kaira- tai profiilipisteen paaluluku (A) tai sivumitta (B) D, G, T Pisteen suuntakulma asteina (D), gooneina (G) tai oletusyksikkönä (T)
Jos kirjoitusmuuntimen koordinaattiasetuksissa on määritelty mikä tahansa koordinaattimuunnos, alkuperäiset koordinaatit kopioidaan ominaisuuksiin _X, _Y ja _Z. Näin voidaan samalle riville kirjoittaa koordinaatit kahdessa eri järjestelmässä:
$T4@8< $_X%.3@14 $_Y%.3@14 $X%.3@14 $Y%.3@14
Lisäksi nimenä voidaan käyttää nollaa (0) merkitsemään tyhjää ominaisuutta. Kirjoitettaessa se tulostaa nollan ja lukiessa arvo yksinkertaisesti ohitetaan. Esimerkiksi pelkkien koordinaattien luku Geonic-formaatista:
$0@8 $0@8 $0@8 $0@8 X%.3@14 Y%.3@14 Z%.3@14
Formaattimäärittely (FORMAT) ja desimaaliosio (DEC) annetaan yleisillä muotoilusäännöillä.
Esimerkkejä:
X@14%.3 123456.789 Kirjoitus kolmella desimaalilla X@14%+.3 +123456.789 Etumerkki myös positiivisille arvoille X@14%.-2 123500 Pyöristys negatiivisilla desimaaleilla $SCALE%. 123.456 Numeerinen ominaisuus oletusdesimaaleilla $MISSING%.0 0 Puuttuva numeerinen ominaisuus nollana $MISSING%_.0 Puuttuva numeerinen ominaisuus tyhjänä X@14%ddmm.3 0103.456 Asteosa ja minuutit desimaaleilla (NMEA) X@14%d°m^'s^".3 1°3'5.678" Erottimina °, ' ja " $VALUE%.1"m" 1.2m Yksikkö arvon perässä $VALUE%.1"value=&" value=1.2 Otsikko ennen arvoa $VALUE%.1"'&'" '1.2' Arvo heittomerkeissä $VALUE%.1'"&"' "1.2" Arvo lainausmerkeissä
Tietueen leveys (WIDTH) määrittelee kirjoitettavan kentän leveyden ja valinnainen lisämääre täyttömerkin (FILL) mahdollistaa kentän täytön jollain muulla kuin välilyönnillä. Negatiivinen leveys asemoi tiedon kentän vasempaan laitaan. Muutoin käytetään oletuksena asemointia oikealle.
Jos leveysmäärittely jätetään pois, kirjoitetaan tieto suoraan sen levyisenä kuin se on. Jos tieto on leveämpi kuin kentän leveysmäärittely, se kirjoitetaan koko leveydellään. Tietuemäärittely lopussa olevilla erikoismerkeillä < ja > voidaan pitkä tietue haluttaessa katkaista lopusta (<) tai alusta (>).
Esimerkkejä:
$T4@8 123 Asemointi oikealle, täyttö välilyönneillä $T4@-8=0 12300000 Asemointi vasemmallle, täyttö nollilla X@14=. ....123456.789 Asemointi oikealle, täyttö pisteillä $PATH@14 c:/foo/bar/bat.txt Pitkä tieto kirjoittuu kentän yli $PATH@14> oo/bar/bat.txt Pitkä tieto katkaistuna alusta $PATH@14< c:/foo/bar/bat Pitkä tieto katkaistuna lopusta $0%.1@8 0.0 Tyhjä ominaisuus yhdellä desimaalilla £LENGTH%.2@8 0.00 Viivan ominaisuus kahdella desimaalilla
Vakiotekstien käsittelyä varten tietue voi myös olla lainaus- tai heittomerkeillä rajattu vakioteksti. Kirjoitettaessa tämä kirjoitetaan suoraan ja luettaessa ohitetaan sen leveyden verran merkkejä. Jos tietue alkaa lainausmerkillä se voi sisältää heittomerkkejä ja päinvastoin.
Jos lainaus- tai heittomerkkien sisällä on normaali $-merkillä alkava tietuemäärittely, se kirjoitetaan lainattuna ja luetaan lainauksen sisältä. Kaikkia normaaleja datamäärittelyjä voidaan käyttää myös lainausten kanssa. Huomattava on, että leveään kenttään tekstiä asemoidessa täyttömerkit tulevat lainausten ulkopuolelle.
Esimerkkejä:
"foobar" foobar Vakiotekstin kirjoitus "'foobar'" 'foobar' Vakioteksti sisältää heittomerkkejä '"foobar"' "foobar" Vakioteksti sisältää lainausmerkkejä "$T4" "123" Koodikenttä lainausmerkeissä '$X@14' '697295.748' Koordinaatti heittomerkeissä
Erotinmerkkeinä tietueiden välillä voidaan oletuksena käyttää välilyöntiä, tabulointia, pilkkua, puolipistettä, pystyviivaa ja &-merkkiä. Tabulaattori annetaan määrittelyssä ~-merkillä. Tyhjänä erottimena toimivaa &-merkkiä ei koskaan kirjoiteta tiedostoon eli se mahdollistaa tietueiden kirjoittamisen kiinni toisiinsa. Jos tietueelle on määrätty leveys, ei erottimena käytettyä välilyöntiä kirjoiteta. Muut erottimet kirjoitetaan, vaikka leveys olisikin annettu. Pystyviiva toimii rivinvaihtona mahdollistaen tietueiden kirjoittamisen eri riveille.
Esimerkkejä:
$T4@6 Z@10 1234 12.345 Vakiolevyiset kentät $T4,Z 1234,12.345 Pilkulla erotetut kentät $T4@6,Z@10 1234, 12.345 Vakiolevyiset pilkulla erotetut kentät $T4&Z 123412.345 Yhteen kirjoitetut kentät $T4|Z 1234 Monirivisen formaatin ensimmäinen rivi 12.345 Monirivisen formaatin toinen rivi T1~T2~T3 12 34 56 Koodikentät tabuloinnilla erotettuna "KP"&T4 KP123 Vakioteksti kiinni ominaisuudessa
Ominaisuuksiin talletettuja päivämääriä tai kellonaikoja voidaan myös lukea ja kirjoittaa eri muodoissa. Formaatti määritellään merkeillä Y, YY, YYYY (vuosi), M, MM (kuukausi), D, DD (päivä), h, hh (tunti), m, mm (minuutti), s, ss (sekuntti) ja vapaavalintaisilla erotinmerkeillä näiden välissä. Kahdella merkillä annettu vuosi (YY) ilmoitetaan kahdella numerolla (09). Muut arvot kahdella merkillä täytetään nollilla vasemmalta (01:03:05). Sekunnnit voidaan myös näyttää desimaaleilla (.2). Kirjoitettavan päivämäärän on oltava ominaisuudessa muodossa 12.7.2009 (D.M.YYYY) ja kellonajan muodossa 12:34:56 (hh:mm:ss).
Esimerkkejä:
$DATE%D.M.YYYY 12.7.2009 3D-Win ominaisuuksien päivämäärän muoto $TIME%hh:mm:ss 12:34:56 3D-Win ominaisuuksien kellonajan muoto $DATE%YYYY-MM-DD 2009-07-12 ISO 8601 standardin mukainen päivämäärä $TIME%hh:mm:ss.2 12:34:56.78 Sekunnit kahdella desimaalilla $DATE%DDMMYY 120709 Vuosi kahdella numerolla
RGB väriarvoja voidaan lukea ja kirjoittaa formatointimääreillä R (punainen), G (vihreä), B (sininen) ja A (läpinäkyvyys). Yksittäinen kirjain tarkoittaa värikomponenttia normaalina kokonaislukuna ja kaksi peräkkäistä kirjainta komponenttia 16-järjestelmässä. Välilyönti erottimena voidaan antaa alaviivalla (_).
Esimerkkejä:
$COLOR%RRGGBB FF0000 Punainen väri 3D-Win oletusmuodossa $COLOR%RRGGBBAA FF0000FF Punainen väri läpinäkyvyyden kanssa $COLOR%R_G_B 255 0 0 Punainen väri erillisinä komponentteina $COLOR%C 192 Harmaasävyarvo
Huomaa että ominaisuus $COLOR on tässä vain esimerkkinä. Sitä ei käytetä kohteiden piirtoon. Piirto käyttää piirtotietoa, jota käsitellään makroilla alla.
Kirjoitettaessa voidaan käyttää samoja makroja kuin pisteryhmässä ja ominaisuushaussa. Normaali #-määrittely kirjoittaa vain annetun makron. Lisämääreellä = voidaan kirjoittaa makron eteen sen tunnus ja yhtäsuuruusmerkki. Makrolla #NAME voidaan kirjoittaa kooditiedostosta haettu T3-kentän koodin selitys. Tämä vaatii kooditiedoston nimen yleisiin muunninasetuksiin.
Luettaessa voidaan käyttää piirtotietojen makroja (#COLOR, #SIZE, jne.).
Esimerkkejä:
#NAME Hajapiste Koodin selitys kooditiedostosta #=NAME NAME=Hajapiste Tunnus ja koodin selitys kooditiedostosta #SLOPE@8%.4 -0.1224 Viivan kaltevuus neljällä desimaalilla #COUNT 12 Viivan pisteiden määrä #COLOR%R_G_B 255 0 0 Piirtotiedon väri erillisinä komponentteina
Normaali $-määrittely kirjoittaa vain annetun ominaisuuden. Lisämääreellä = voidaan kirjoittaa ominaisuuden eteen sen tunnus ja yhtäsuuruusmerkki. Lisäksi käyttämällä merkkiä * ominaisuuden nimenä voidaan kirjoittaa kaikki jäljellä olevat ominaisuudet. Jos merkin * jälkeen ei ole annettu erotinmerkkiä, käytetään ominaisuuksien välillä edellistä erotinmerkkiä.
Luettaessa ominaisuus takaisin =-merkin kanssa siinä mahdollisesti oleva tunnus poistetaan. Kun luetaan kaikki ominaisuudet määrittelyllä $=*, luetaan tietueita tunnuksineen niin kauan kuin niistä löytyy yhtäsuuruusmerkki. Määrittelyllä $* kirjoitettuja ominaisuuksien arvoja ei voida enää lukea takaisin samalla määrittelyllä.
Määrittelyllä $# voidaan kirjoitettaessa hakea kooditiedostosta ominaisuuden tosiarvo. Esimerkiksi määrittely $#T3 hakee koodin selityksen ja määrittely $#MAT materiaalin nimen. Tämä vaatii kooditiedoston nimen yleisiin muunninasetuksiin.
Esimerkkejä:
$T1 9 Kentän T1 arvo $=T1 T1=9 Kentän T1 tunnus ja arvo $* 1 2 3 4 Kaikkien ominaisuuksien arvot $#T3 Hajapiste Koodin selitys kooditiedostosta $=* T1=1 T2=2 T3=3 T4=4 Kaikkien ominaisuuksien tunnukset ja arvot $T3,$=* 3,T1=1,T2=2,T4=4 Koodi ja kaikki loput ominaisuudet $T3,'$=*' 3,T1='1',T2='2',T4='4' Koodi ja loput ominaisuudet lainattuna
Viivan pisteet voidaan kirjoittaa määrittelyn lopussa hakasuluissa olevalla toisto-osuudella. Hakasulkujen sisään kirjoitetaan yksittäisen viivapisteen kirjoitusmäärittely normaalien sääntöjen mukaan. Jos ennen hakasulkujen loppua ei ole annettu erotinmerkkiä, käytetään toistojen välillä edellistä erotinmerkkiä. Tätä kopioitua erotinmerkkiä ei kirjoiteta viimeisen toiston jälkeen.
Esimerkkejä:
$T2 [X.1 Y.1 Z.1] 2 12.3 67.7 1.2 98.7 54.3 3.4 Viivanumero ja koordinaatit $T1,$T2,$T3,[X.1,Y.1] 1,2,3,12.3,67.7,98.7,54.3 Pinta, viiva, koodi ja koordinaatit $T2 [$T4 X.1 Y.1] 2 1 12.3 67.7 2 98.7 54.3 Viiva, koordinaatit ja pistenumero $=* [X.1 Y.1] T1=1 T2=2 12.3 67.7 98.7 54.3 Ominaisuudet ja koordinaatit $T2 $=* [X.1,Y.1 ] 2 T1=1 12.3,67.7 98.7,54.3 Ominaisuudet ja koordinaatit
Kommenttimerkillä (!) alkavat rivit ohitetaan aina luettaessa. Kommenttirivejä ei kuitenkaan hyväksytä monirivisissä formaateissa tietueiden välillä.
Taiteviivojen lukeminen perustuu viivanumeron (kenttä T2) sisältöön. Jos kentän sisältö on tyhjä tai nolla, piste luetaan hajapisteenä. Muutoin pisteet lisätään lukujärjestyksessä viivaan ja uusi viiva aloitetaan, kun viivanumero (T2) tai koodi (T3) vaihtuu.
Muuntimeen liittyy erikoisasetuksia.
Neljä merkkijonosarjaa, joissa luokitellaan tekstiformaatin erikoismerkit. Näiden avulla on tarvittaessa mahdollista lukea myös formaatteja, joissa näillä erikoismerkeillä on oma merkityksensä.
Escapes Poistaa määrittelyn merkin erityismerkityksen, oletus "^\". Separators Tietueiden erotinmerkit määrittelyssä, oletus " ~,;|&". Quotes Vakiotekstien rajat määrittelyssä, oletus " ja '. Comment Rivin alun kommenttimerkit tiedostossa, oletus ! ja #.
Huomaa, että Escapes ja Quotes asetukset vaikuttavat vain formaatin määrittelyyn. Itse data voi sisältää näitä merkkejä vapaasti. Separator-asetuksen merkit vaikuttavat sekä määrittelyssä että itse datassa ja Comment-asetuksen merkit ainoastaan datassa.
Lukuasetus Topcon-formaatia varten.
31 Topcon-aineiston luku. Muuntaa $-merkit välilyönneiksi ja lukee &-merkin jälkeen viivanumeron.
102$7006019.356$22484348.667$23.197$710$Type=400$Asennusvuosi=1998 103$7006019.213$22484348.557$23.182$715$Halkaisija=160$Type=P V C$Asennusvuosi=1995&1@
Katso myös: Yleiset erikoisasetukset.