../../_images/logo_gdal.png ../../_images/OSGeo_project.png

GDAL/OGR Pika-aloitus

Tämä pika-aloitus on jaettu kahteen osaan: GDAL (rasteritiedot) ja OGR (vektoritiedot).

Tässä Pika-aloitusnäytössä kuvataan, miten:

GDAL
  • Tarkastele kuvaaineistoihin gdalinfon avulla

  • Muotoile aineistokäännökset gdal_translaten avulla

  • Uudelleenprojekti aineistosi gdalwarpin avulla

  • Tee kuvamosaiikki aineistoistasi gdal_warp- tai gdal_merge.py-komentojen avulla

  • Tuota shapefile-tiedosto rasteri-karttalehti-indeksiksi gdaltindex-komennon avulla

OGR
  • aineistotietojen saamiseen ogrinfo-komennon avulla

  • aineistojen muuttaminen eri tietoformaatteihin ogr2ogr-työkalun avulla

Tarvitset vain päätteen. Jos haluat visualisoida tulokset, voit käyttää yhtä DESKTOP GIS Software -sovelluksesta OSGeoLivessä kuten QGIS.

Tutustu GDAL-ohjelmaan

Demodata löytyy /usr/local/share/data. Tässä Pika-aloituksessa haluamme vilkaista Natural Earth -aineistoihin. Työskentelemme aineistokopion kanssa. Näin ensimmäinen askel on kopioida tiedot kotihakemistoosi.

cd /home/user
cp -R /usr/local/share/data/natural_earth2/ ./gdal_natural_earth

Sitten löydät NaturalEarth rasteriaineiston ja .tfw World-tiedoston kansiosta:

ls /home/user/gdal_natural_earth/HYP_50M_SR_W.*

Vihje

Avaa tiedosto Desktop GIS -ohjelmistossa, kuten QGIS, ja tutustu aineistoon.

Saat tietoja rasteriaineistoista gdalinfon avulla

gdalinfo HYP_50M_SR_W.tif
  Driver: GTiff/GeoTIFF
  Files: HYP_50M_SR_W.tif
         HYP_50M_SR_W.tfw
  Size is 10800, 5400
  Coordinate System is `'
  Origin = (-179.999999999999972,90.000000000000000)
  Pixel Size = (0.033333333333330,-0.033333333333330)
  Metadata:
    TIFFTAG_SOFTWARE=Adobe Photoshop CS3 Macintosh
    TIFFTAG_DATETIME=2009:09:19 10:13:17
    TIFFTAG_XRESOLUTION=342.85699
    TIFFTAG_YRESOLUTION=342.85699
    TIFFTAG_RESOLUTIONUNIT=2 (pixels/inch)
  Image Structure Metadata:
    INTERLEAVE=PIXEL
  Corner Coordinates:
  Upper Left  (-180.0000000,  90.0000000)
  Lower Left  (-180.0000000, -90.0000000)
  Upper Right ( 180.0000000,  90.0000000)
  Lower Right ( 180.0000000, -90.0000000)
  Center      (  -0.0000000,   0.0000000)
  Band 1 Block=10800x1 Type=Byte, ColorInterp=Red
  Band 2 Block=10800x1 Type=Byte, ColorInterp=Green
  Band 3 Block=10800x1 Type=Byte, ColorInterp=Blue
Huomautus:
  • Ajuri on ”GTiff/GeoTIFF”

  • Koko on 10800x5400

  • 3 kaistaa, joiden tyyppi on Byte.

  • Koordinaatit

  • ei koordinaattititietoja

Yksinkertainen käännösmuoto

Ensimmäiseksi on tiedettävä ajurit. Komennolla ”–formats” gdal_translate-komennon perässä saat nähtäväksi luettelon kaikista käytettävissä olevista tietoformaateista.

Kukin formaatti kertoo osaltaan, onko se
  • vain luku-oikeuden omaava (ro),

  • luku/kirjoitusoikeuden omaava (rw) vai

  • luku-/kirjoitus-/päivitysoikeuden omava (rw+).

gdal_translate --formats

”–format”-muuttujan avulla voidaan kysellä tietoja ajureista, mukaan lukien luonti asetukset ja sallitut tietotyypit.

gdalinfo --format jpeg
gdal_translate --format png

Käännös

Käännökset on suoritettu gdal_translate komennolla. Oletuksena tulostiedoston muoto on GeoTIFF. Muuttujaa ’-of ’ käytetään valitsemaan tulostiedoston muoto ja -co -muuttujaa taas käytetään määrittämään tiedoston luomisen asetuksia:

gdal_translate -of JPEG -co QUALITY=40 HYP_50M_SR_W.tif HYP_50M_SR_W.jpg

Muuttujaa ’-ot ’ voidaan käyttää muuttamaan tulostiedoston tietotyyppiä.

gdal_translate -ot Int16 HYP_50M_SR_W.tif HYP_50M_SR_W_Int16.tif

Tarkista tietotyyppi gdalinfo-komennon avulla.

Uudelleenskaalaus

Muuttuja ’-outsize ’ voidaan määrittää tulostiedoston koko.

gdal_translate -outsize 50% 50% HYP_50M_SR_W.tif  HYP_50M_SR_W_small.tif

Tarkista tiedoston koko gdalinfo-komennon avulla.

Muuttujaa -scale voidaan käyttää tietojen uudelleenskaalaukseen. Syötteiden ja tulosteiden vaihteluvälejä voidaan myös hallita eksplisiittisesti. Tulo-ja lähtö alueiden tarkka hallinta on myös käytettävissä. Gdalinfo-kommenon ’-mm’-muuttujalla voidaan nähdä pikselien minimi/maksimiarvot.

Jaetaan kuvamme nyt kahteen ”-srcwin” -muuttujalla, joka tekee kopion perustuen pikselin/rivin sijaintiin (xoff yoffx xsize ysize). Voit myös käyttää ’-projwin’ -muuttujaa ja kulmat georeferoidu koordinaatit (ulx uly lrx lry).

gdalinfo -mm HYP_50M_SR_W.tif
gdal_translate -srcwin 0 0 5400 5400 HYP_50M_SR_W.tif  west.tif
gdal_translate -srcwin 5400 0 5400 5400 HYP_50M_SR_W.tif  east.tif

Raster tileindex kanssa gdaltindex

Voit luoda shapefile-tiedoston rasteri tileiksi. Jokaista kuvaa varten luodaan monikulmio, jossa on monikulmion laajuuden ja tiedoston polun rajat.

gdaltindex index_natural_earth.shp *st.tif

Vilkaista tuotoksen shapefile kanssa QGIS ja ogrinfo (opit lisää ogrinfo myöhemmin tässä opetus ohjelmassa)

../../_images/gdal_gdaltindex.png
ogrinfo index_natural_earth.shp index_natural_earth
INFO: Open of `index_natural_earth.shp'
    using driver `ESRI Shapefile' successful.

Layer name: index_natural_earth
Geometry: Polygon
Feature Count: 2
Extent: (-180.000000, -90.000000) - (180.000000, 90.000000)
Layer SRS WKT: (unknown)
location: String (255.0)
OGRFeature(index_natural_earth):0
  location (String) = east.tif
  POLYGON ((-0.00000000001796 90.0,179.999999999964047 90.0,179.999999999964047 -89.999999999982009,-0.00000000001796 -89.999999999982009,-0.00000000001796 90.0))

OGRFeature(index_natural_earth):1
  location (String) = west.tif
  POLYGON ((-179.999999999999972 90.0,-0.00000000001796 90.0,-0.00000000001796 -89.999999999982009,-179.999999999999972 -89.999999999982009,-179.999999999999972 90.0))

Uudelleenheijastaminen

Tämän prosessin oletetaan, että HYP_50M_SR_W. tif on luotu oikein rajoja. Kuten näimme ennen gdainfo ei koordinoida järjestelmä oli asetettu. Joten me antaa WGS84 koordinaatti järjestelmän kuvan ensimmäisessä vaiheessa.

gdal_translate -a_srs WGS84 HYP_50M_SR_W.tif HYP_50M_SR_W_4326.tif

Gdalwarp-komentoa voidaan käyttää kuvien uudelleenprojektiin. Tässä uudistamme WGS84 maantieteellisen kuvan Mercator-projektille:

gdalwarp -t_srs '+proj=merc +datum=WGS84' HYP_50M_SR_W_4326.tif mercator.tif

Käytä gdalinfo tarkistaa muutoksen ja vilkaista kuvaa.

../../_images/gdal_mercator.png

Tässä me reproject on Ortho projektiota.

gdalwarp -t_srs '+proj=ortho +datum=WGS84' HYP_50M_SR_W_4326.tif ortho.tif
../../_images/gdal_ortho.png

Note how the poles are clipped? This is because the edges at the pole can’t be reprojected gdalwarp does not read all the data. We can force gdalwarp to read a bunch of surplus data around chunks as one way to resolve this.

Mosaiikki

gdal_merge. py on python-skripti, jota voidaan käyttää yksinkertaisiin mosaicking tehtäviin. Mosaic East. tif ja West. tif yhdeksi tiedostoksi:

gdal_merge.py  east.tif west.tif -o merged.tif

Sama tehtävä voidaan toteuttaa gdalwarp. gdalwarp has eri-lta edullinen aikana gdal_merge, ainoastaan kanisteri olla hitaasti jotta fuusioida usea arkistoida:

gdalwarp east.tif west.tif warpmerged.tif

Tutustu OGR

cd /home/user/gdal_natural_earth/

Vihje

Avaa muoto tiedosto Desktop GIS kuten QGIS, ja Katso.

Saat tietoja vektori tiedoista ogrinfo

ogrinfo -ro /home/user/gdal_natural_earth
INFO: Open of `/home/user/gdal_natural_earth'
      using driver `ESRI Shapefile' successful.
  1: ne_10m_populated_places (3D Point)
  2: ne_10m_geography_regions_polys (3D Polygon)
  3: ne_10m_admin_1_states_provinces_shp (3D Polygon)
  4: ne_10m_urban_areas (3D Polygon)
  5: ne_10m_geography_marine_polys (3D Polygon)
  6: ne_10m_land (3D Polygon)
  7: ne_10m_geography_regions_elevation_points (3D Point)
  8: ne_10m_admin_0_countries (3D Polygon)
  9: ne_10m_rivers_lake_centerlines (3D Line String)
  10: ne_10m_lakes (3D Polygon)
  11: ne_10m_geography_regions_points (3D Point)
  12: ne_10m_ocean (3D Polygon)

Saat yhteenvedon tietoja ogrinfo yhdessä ”-niin”.

ogrinfo -ro -so ne_10m_admin_0_countries.shp ne_10m_admin_0_countries
INFO: Open of `ne_10m_admin_0_countries.shp'
      using driver `ESRI Shapefile' successful.

Layer name: ne_10m_admin_0_countries
Geometry: 3D Polygon
Feature Count: 254
Extent: (-180.000000, -90.000000) - (180.000000, 83.634101)
Layer SRS WKT:
GEOGCS["GCS_WGS_1984",
    DATUM["WGS_1984",
        SPHEROID["WGS_84",6378137.0,298.257223563]],
    PRIMEM["Greenwich",0.0],
    UNIT["Degree",0.0174532925199433]]
scalerank: Integer (4.0)
featurecla: String (30.0)
labelrank: Real (16.6)
sovereignt: String (254.0)
sov_a3: String (254.0)
adm0_dif: Real (16.6)
level: Real (16.6)
type: String (254.0)
admin: String (254.0)
adm0_a3: String (254.0)
geou_dif: Real (16.6)
geounit: String (254.0)
gu_a3: String (254.0)
su_dif: Real (16.6)
subunit: String (254.0)
su_a3: String (254.0)
brk_diff: Real (16.6)
name: String (254.0)
name_long: String (254.0)
brk_a3: String (254.0)
brk_name: String (254.0)
brk_group: String (254.0)
abbrev: String (254.0)
postal: String (254.0)
formal_en: String (254.0)
formal_fr: String (254.0)
note_adm0: String (254.0)
note_brk: String (254.0)
name_sort: String (254.0)
name_alt: String (254.0)
mapcolor7: Real (16.6)
mapcolor8: Real (16.6)
mapcolor9: Real (16.6)
mapcolor13: Real (16.6)
pop_est: Real (16.6)
gdp_md_est: Real (16.6)
pop_year: Real (16.6)
lastcensus: Real (16.6)
gdp_year: Real (16.6)
economy: String (254.0)
income_grp: String (254.0)
wikipedia: Real (16.6)
fips_10: String (254.0)
iso_a2: String (254.0)
iso_a3: String (254.0)
iso_n3: String (254.0)
un_a3: String (254.0)
wb_a2: String (254.0)
wb_a3: String (254.0)
woe_id: Real (16.6)
adm0_a3_is: String (254.0)
adm0_a3_us: String (254.0)
adm0_a3_un: Real (16.6)
adm0_a3_wb: Real (16.6)
continent: String (254.0)
region_un: String (254.0)
subregion: String (254.0)
region_wb: String (254.0)
name_len: Real (16.6)
long_len: Real (16.6)
abbrev_len: Real (16.6)
tiny: Real (16.6)
homepart: Real (16.6)

Jos suoritat ogrinfo-parametrin ilman parametria, saat tiedoista yhteenvedon ja sen jälkeen osion jokaista tieto joukkoa varten.

ogrinfo -ro ne_10m_admin_0_countries.shp ne_10m_admin_0_countries

Voit välittää tuloksen ogrinfo ja grep suodattaa ja saada vain määrite maa.

ogrinfo ne_10m_admin_0_countries.shp ne_10m_admin_0_countries | grep 'admin '

  admin (String) = Aruba
  admin (String) = Afghanistan
  admin (String) = Angola
  admin (String) = Anguilla
  admin (String) = Albania
  admin (String) = Aland
  admin (String) = Andorra
etc.

Voit muuntaa tiedot muihin muotoihin. Hae tuettujen muotojen luettelo ”–formaateilla”.

Tietojen muuntaminen tiedosto muotojen välillä ogr2ogr avulla

Voit käyttää ogr2ogr muuntaa yksinkertaisia ominaisuuksia tietojen välillä tiedosto muotoja. Voit käyttää ’–formaatteja ’ saadaksesi luettelon tuetuista muodoista luku-ja kirjoitus tiedoilla.

Muunna maat GML:ksi.

ogr2ogr --formats
ogr2ogr -f GML countries.xml ne_10m_admin_0_countries.shp

Kokeiltavaa

Seuraavassa on joitakin lisä haasteita, joita voit kokeilla:

  • Kokeile gdalwarp tai gdal_merge. py mosaiikki tietosi

  • Kokeile gdaladdo rakentaa sisäisiä katsauksen

  • QGIS käyttää GDAL/OGR liikaa eri muodoissa. Se kin ehkäistä GdalTools ampua jotta jalostaa rasteri aineisto. Tämä plugin integroi gdal-Tools osaksi QGIS.

  • Kokeile ogr2ogr tuoda/viedä vektori tietoja muihin muotoihin, kuten PostGIS. Tutustu vaihto ehtoja ogr2ogr säädetään.

  • Kokeile QGIS plugin OGR-Layer-Konverter.

Mitä seuraavaksi?

Tämä on vasta ensimmäinen askel tiellä käyttää GDAL ja OGR. Paikalla on arpa enemmän funktionalismi te kanisteri koetus.

GDAL-projektin koti sivu

GDAL Raster opetus ohjelma

GDAL työpaja