Hyppää sisältöön

Docs CSC now features an automatic Finnish translation. Click here for more information.

Warning!

Puhti and Mahti will be decommissioned after Roihu becomes available. Users should clean up unnecessary files and move any required data by the end of August 2026. See the Roihu data preparation instructions for details.

Puhti scratch is very full: keep only active data there and move or delete everything else. No new Puhti scratch quota will be granted.

GDAL

GDAL on erittäin monipuolinen avoimen lähdekoodin kirjasto rasteri- ja vektoridatalle, ja se tukee kymmeniä eri tiedostomuotoja sekä mitä tahansa koordinaattijärjestelmää. GDALia käytetään taustalla monissa paikkatieto-ohjelmistoissa datan lukemiseen ja kirjoittamiseen. GDAL on yleensä erittäin nopea, mutta useimmissa tapauksissa se ei tue rinnakkaislaskentaa. GDALissa on myös Java- ja Python-rajapinnat. Lisäksi kirjasto sisältää komentorivityökaluja moniin eri tarkoituksiin. Alla tarkastelemme muutamia niistä.

Alkuun pääseminen

  • Asenna GDAL. Jos olet jo asentanut QGISin tai R/Python GIS -paketteja, sinulla on todennäköisesti GDAL jo valmiina. Selvitä vain, missä se sijaitsee; etsi esimerkiksi OSGeo shell, Anaconda Prompt tai gdalinfo-tiedosto levyltäsi.
  • Avaa pääte, OSGeo shell, Anaconda Prompt tai Windowsin komentokehote.
  • (Katso komentorivin perusohjeet tämän sivun lopusta.)
  • GDAL on saatavilla Puhdissa.

Päätyökalut

  • gdalinfo ja ogrinfo - tiedoston metadatan tulostamiseen (koordinaattijärjestelmä, tiilitys, kaistat, attribuuttikentät jne.). Työkalut, joiden nimessä on gdal, ovat rasteritiedostoille ja ogr-nimiset vektoritiedostoille.
  • gdal_translate ja ogr2ogr - tiedostomuodon vaihtamiseen ja tiedostojen muokkaamiseen.
  • gdalwarp ja ogr2ogr - koordinaattijärjestelmän vaihtamiseen
  • gdal_merge and ogr2ogr - tiedostojen yhdistämiseen
  • gdal_edit - rasteritiedostojen muokkaamiseen paikallaan
  • gdalbuildvrt - virtuaalirasterien luomiseen, katso lisätietoja virtuaalirasteriohjeestamme.
  • GDALissa on lisäksi monia muitakin työkaluja; täydellinen viite löytyy GDAL-ohjelmien sivulta, jossa kaikki työkalut ja niiden valinnat on kuvattu yksityiskohtaisesti.

On tärkeää huomata, että useimmat työkalut luovat uuden tiedoston, jolloin jotkin asetukset voivat muuttua, koska käytetään GDALin oletusarvoja, esimerkiksi rasterin sisäinen tiilitys tai pakkaus. Jos haluat säilyttää nämä, tarkista gdalinfo-komennolla, mitä on käytetty, ja lisää komentoihin tarvittavat lisävalinnat.

EPSG-koodit

Helpoin tapa määrittää koordinaattijärjestelmä GDALissa on käyttää EPSG-koodeja. Suomen yleisimmät koodit ovat:

3067 ETRS-TM35FIN  
4326 WGS-84

Esimerkkejä

Tulosta tiedoston metadata

gdalinfo file.tif  
ogrinfo -al -so file.shp

Vaihda koordinaattijärjestelmä

Käytä -t_srs uuden koordinaattijärjestelmän määrittämiseen.

ogr2ogr -t_srs EPSG:3067 output.shp input.shp  
gdalwarp -t_srs EPSG:4326 input.tif output.tif

Jos alkuperäistä koordinaattijärjestelmää ei ole kirjoitettu tiedostoon tai GDAL ei tulkitse sitä oikein, sen voi antaa valinnalla -s_srs:

gdalwarp -s_srs EPSG:3386 -t_srs EPSG:2393 input_kkj0.tif output_kkj3.tif

Lisää koordinaattijärjestelmä

Jos haluat lisätä koordinaattijärjestelmän tiedostoon käsin, käytä valintaa -a_srs (tämä ei muuta dataa, vaan lisää vain tiedon koordinaattijärjestelmästä).

ogr2ogr -a_srs EPSG:2394 output_no_srs.shp input_kkj4.shp
gdal_edit -a_srs EPSG:3067 input.tif
gdal_translate -a_srs EPSG:2394 input_no_srs.tif output_kkj4.tif

Vaihda tiedostomuoto

gdal_translate input.ecw output.tif  
ogr2ogr output.shp input.mif

Aseta rasteritiedostolle pakkaus ja tiilitys.
gdal_translate -co COMPRESS=JPEG -co "TILED=YES input.ecw output.tif

Luo Cloud Optimized GeoTiff, joka sisältää oletuksena tiilityksen ja sisäiset yleiskatselutasot
gdal_translate world.tif world__cog.tif -of COG -co COMPRESS=LZW

Käytä vektoridatan attribuuttidatalle tiettyä merkistökoodausta.

ogr2ogr output.shp input.gml -lco ENCODING=UTF-8

Lue dataa WFS-verkkopalvelusta.

ogr2ogr output.shp WFS:"http://geohub.jrc.ec.europa.eu/effis/ows" layername

Lue esimerkiksi Geofabrikista ladattua OpenStreetMap-dataa.

ogr2ogr OSM_aineisto finland-latest.osm.pbf

Valitse vain järvet tai kunnat. Tarkista data ogrinfo-komennolla ja lue OpenStreetMapin Map Features -sivu muiden kohteiden valitsemiseksi.

ogr2ogr -where "natural like 'water'" fin_lakes.shp finland-latest.osm.pbf multipolygons ogr2ogr -where "admin_level='8'" fin_municipalities.shp finland-latest.osm.pbf multipolygons

Optimoi Shape-tiedoston dbf-tiedosto

Shape-aineistoissa on usein liian suuret .dbf-tiedostot, koska kenttien pituudet perustuvat oletuksiin, eivät dataan. Merkkijono- ja kokonaislukukenttien pituuksien optimointiin:

ogr2ogr output.shp input.shp –lco RESIZE=YES

Olemassa olevalle tiedostolle saman voi tehdä ogrinfo-komennolla.

ogrinfo file1.dbf -sql "RESIZE file1"

Yksi vaihtoehto double-tyyppisten kenttien pituuksien korjaamiseen on tehdä se käsin OpenCalcissa. Kun .dbf avataan OpenCalcissa, kenttien tyypit ja pituudet näkyvät ensimmäisellä rivillä, esimerkiksi: N,19,11. Näitä voi muuttaa käsin sopivammiksi, esimerkiksi N,9,2.

CSV Shape-muotoon

CSV-tiedosto, jossa koordinaatit ovat sarakkeissa CoordX ja CoordY ja koordinaattijärjestelmä on EPSG:3067, voidaan muuntaa Shape-muotoon:

ogr2ogr output.shp input.csv -oo X_POSSIBLE_NAMES=CoordX -oo Y_POSSIBLE_NAMES=CoordY -a_srs EPSG:3067

GDAL yrittää arvata kenttien tyypit ja pituudet, mutta joskus se voi mennä pieleen. Korjaamista varten luo ensin .csvt ja tarkista / muokkaa sitä tarvittaessa.

ogr2ogr out.csv in.csv -oo AUTODETECT_WIDTH=YES -oo AUTODETECT_TYPE=YES -lco CREATE_CSVT=YES

Yhdistä tiedostoja

gdal_merge -o merged.tif input1.tif input2.tif

Vektoridatalle ei ole merge-komentoa, mutta ogr2ogrissa on append-valinta. Luo siis ensin kopio yhdestä syötetiedostosta (1.) ja lisää sitten toinen tiedosto siihen (2.). -nln määrittää tason nimen

(1) ogr2ogr file_merged.shp file1.shp (2) ogr2ogr -update -append file_merged.shp file2.shp -nln file_merged

Leikkaa tiedostoja

Rajauslaatikolla:

gdal_translate -projwin xmin ymax xmax ymin input.tif output.tif  
ogr2ogr -spat xmin ymin xmax ymax output.shp input.shp

Shape-tiedostolla:

ogr2ogr -clipsrc clippingLayer.shp output.shp input.shp  
gdalwarp -cutline clippingLayer.shp -crop_to_cutline -dstalpha input.tif output.tif

Eräajotiedostot

GDAL-komentojen suurin etu on se, että sama komento on erittäin helppo suorittaa monelle tiedostolle for-silmukalla (DOS, Linux), jokerimerkeillä (DOS, Linux) tai eräajotiedostolla.

DOS

FOR %i IN (input_folder/*.tif) DO gdal_translate -of ECW %i output_folder/%~ni.ecw

  • %i - tiedoston nimi, i voidaan vaihtaa miksi tahansa muuksi
  • IN (*.tif) - mitkä tiedostot valitaan, yleensä jokerimerkit ovat tässä hyödyllisiä
  • Tiedoston nimen muunnelmat:
    • %i = tiedostopolku, nimi ja pääte: input_folder/map.tif
    • %~ni = tiedoston nimi: map
    • %~pni = tiedostopolku ja nimi: input_folder/map

Linux

Komentoriviltä:

for i in *.shp; do echo ogrinfo $i -sql "CREATE SPATIAL INDEX ON ${i/.shp/}"; done

Eräajotiedostosta:

    #!/bin/bash
    for i in $(find -name '*.tif')
    do
        echo $i
        gdal_translate $i ../infrared_lossless/${i/tif/jp2} -of JP2ECW -co target=0
    done

Windowsin ja Linuxin peruskomennot

  • Vaihda työhakemistoa ja listaa sen sisältö. DOS: cd ja dir. Linux: cd ja ls.
  • Kopioi kansiohierarkia (ilman tiedostoja)
    • Windows: xcopy source destination /t /e (anna komento kansiossa, jossa source sijaitsee)
    • Linux: find -type d -exec mkdir ../compress95/{} \; (anna komento kansiossa, josta haluat tehdä kopion)
  • Kopioi ja poista tiedostoja: DOS: copy ja del. Linux: cp ja rm.

Suomenkielinen tekoälykäännös

Sisällössä voi esiintyä virheellistä tietoa tekoälykäännöksestä johtuen.

Klikkaa tästä antaaksesi palautetta