Viivageometrian kuvaus tekstitiedostossa
Pisteaineistojen lisäksi myös viiva- tai alueaineistoja voidaan lisätä QGIS:n csv-tekstitiedostoista. Yleisin käyttötapaus tälle on tilanne, jossa halutaan lisätä taulukossa olevaa dataa karttatasoksi. Taulukkolaskentaohjelmilla kuten LibreOffice Calc ja MS Excel pystyy tallentamaan taulukkoja csv-formaatissa. Aineiston tulee tällöin sisältää myös sijaintitieto koordinaateissa, eikä esimerkiksi pelkkä osoite aina riitä.
Toisin kuin pisteaineistossa, jossa kohteen X ja Y-koordinaatit voivat olla omissa sarakkeissaan, viiva-aineiston tapauksessa viivageometrian tulee olla omassa sarakkeessaan WKT (Well Known Text) muodossa. Pelkät viivan alku- ja loppupisteen koordinaatit (X0, Y0) ja (X1, Y1) eivät siis kelpaa. Yksinkertaisen viivan tapauksessa geometrian WKT-tyyppi on LINESTRING, ja koordinaatit tulee ilmoittaa muodossa:
LINESTRING (X0 Y0, X1 Y1)
Viiva voi koostua alku- ja loppupisteen lisäksi myös mistä tahansa määrästä välipisteitä:
LINESTRING (X0 Y0, X1 Y1, X2 Y2)
Käytännön esimerkki yksinkertaisesta viivasta:
LINESTRING (2554500.5 6678483.89, 2554474.33 6678501.34)
Huom. pilkku lisätään vain pistepari(e)n väliin, X ja Y-koordinaattien väliin tulee välilyönti. Koordinaattien desimaalien erotin on piste, ei pilkku. Taulukkolaskentaohjelman kielisyysasetuksista riippuen tämä voi aiheuttaa hankaluuksia.
Aineiston käsitteleminen
Käsitellään LibreOffice Calc-ohjelmalla aineistoa, joka sisältää viivan alku- ja loppupisteen koordinaatit sarakkeissa XA, YA, XL, YL:
Lasketaan kohteiden geometria uuteen sarakkeeseen geom hyödyntäen taulukkolaskentaohjelman funktioita. Englanninkielisessä versiossa voidaan käyttää funktiota CONCATENATE (suom. KETJUTA) tekstin ja solujen yhdistämiseen:
=CONCATENATE("LINESTRING (",A2," ",B2,", ",C2," ",D2)
Alueasetuksista riippuen taulukkolaskentaohjelma voi käyttää numeroiden desimaalierottimena pilkkua, kuten yllä. Tällöin aineisto ei toimi oikein QGIS:sa. Muutetaan pilkut pisteiksi lisäämällä kaavaan funktio SUBSTITUTE (suom. VAIHDA):
=CONCATENATE("LINESTRING (",SUBSTITUTE(A2,",",".")," ",SUBSTITUTE(B2,",","."),", ",SUBSTITUTE(C2,",",".")," ",SUBSTITUTE(D2,",","."),")")
Tai suomenkielisessä LibreOfficessa:
=KETJUTA("LINESTRING (";VAIHDA(A208;",";".");" ";VAIHDA(B208;",";".");", ";VAIHDA(C208;",";".");" ";VAIHDA(D208;",";".");")")
Samojen kaavojen pitäisi toimia myös Excelissä. Muista lopuksi tallentaa aineisto csv-muodossa.
Aineiston hyödyntäminen QGIS:lä
Tallennettu csv-aineisto voidaan avata QGIS:lä muiden tekstipohjaisten aineistojen tavoin, valitsemalla valikosta Tasot > Lisää taso > Lisää erotinmerkkejä sisältävä tekstitiedosto. Valitse tiedostomuodoksi csv, geometrian määritykseksi WKT ja geometriakentäksi luomasi sarake:
Koska csv-tiedosto ei sisällä tietoa aineiston koordinaattijärjestelmästä, QGIS kysyy sitä automaattisesti aineistoa lisättäessä. Määritettyäsi aineiston koordinaattijärjestelmän aineisto lisätään viivakohteita sisältäväksi karttatasoksi:
Kommentit