Croatia/Kratki vodici/digitalni-model-terena-iz-csv-datoteke-pomocu-gdala

From OSGeo
< Croatia
Revision as of 10:31, 11 December 2010 by Wiki-Darko (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search


Digitalni model terena iz CSV datoteke pomoću GDALa

Kako bi uspješno pratili kratki vodič morate zadovoljiti sljedeće:

  1. instalirati GDAL programski paket za vaš operativni sustav
  2. preuzeti i otpakirati ZIP datoteku koja sadrži podatke u CSV formatu

Datoteka podaci.csv sadrži sljedeće zapise:

X,Y,Z
5585884.50,5063582.05,63.45
5585884.67,5063582.95,63.90
5585884.75,5063583.81,63.97
5585884.65,5063584.70,64.18
5585884.27,5063585.74,64.30
5585883.73,5063586.89,64.37
...

Zaglavlje datoteke definira koje informacije sadrži koja kolona, u ovom slučaju X i Y koordinatu te visinu Z.

Tijek procesa:

  1. napraviti raster pomoću gdal_grid
    1. definirati CSV kao virtualni format za OGR
    2. odabranom metodom interpolacije napraviti raster
  2. izraditi slojnice pomoću gdal_contour


Gridding pomoću gdal_grid

VRT virtualni format

VRT je tzv. virtualni format, odnosno tekstualna datoteka s metapodacima koji opisuju neki set podataka.

Točke sa visinskim vrijednostima
<OGRVRTDataSource>
  <OGRVRTLayer name="podaci">
     <SrcDataSource>podaci.csv</SrcDataSource> 
     <GeometryType>wkbPoint</GeometryType>
     <GeometryField encoding="PointFromColumns" x="X" y="Y" z="Z"/> 
  </OGRVRTLayer>
</OGRVRTDataSource>

Zapis <OGRVRTLayer name="podaci"> definira naziv sloja podataka, <GeometryType> tip podataka, koji je u ovom slučaju točka, i <GeometryField koji je definiran zapis, odnosno u kojoj koloni se nalazi koji podatak. Naziv sloja podataka bi trebao biti isti kao naziv datoteke bez ekstenzije, dakle podaci i podaci.

Tekstualnu datoteku možemo nazvati kako želimo, ali za potrebe ovog vodiča neka bude podaci.vrt.

Nakon spremanja datoteke možemo iskoristiti alat ogrinfo kako bi saznali osnovne informacije o ovo skupu podataka:

$ ogrinfo podaci.vrt podaci -so
INFO: Open of `podaci.vrt'
      using driver `VRT' successful.

Layer name: podaci
Geometry: Point
Feature Count: 4448
Layer SRS WKT:
(unknown)
X: String (0.0)
Y: String (0.0)
Z: String (0.0)

Primjerice znamo da skup podataka ima 4448 točaka i da nema definiran prostorni referentni sustav (SRS). SRS možemo definirati tako da dodamo:

<LayerSRS>+proj=tmerc +ellps=bessel +k_o=0.9999 +x_0=5500000 +lon_0=15 +units=m</LayerSRS>

čime bi definirali 5 zonu GaussKruger projekcije bez transformacijskih parametara prema wgs84 u PROJ.4 formatu.

Gridding i odabir metode interploacije

Već je spomenuto kako gdal_grid podržava tri metode interpolacije (link). Osim toga za svaku se metodu mogu kontrolirati različiti parametri. Najkorisnije je spomenuti da bez definicije parametara gdal_grid u obzir uzima sve točke zadanog područja, što vrlo vjerojatno nije željno ponašanje.

Od parametara su najzanimljiviji:

Interpolacijom dobiveni raster DEM
Interpolacijom dobiveni raster DEM s prikazom tocaka
radius1
prvi promjer elipse područja traženja, ukoliko je 0 u obzir se uzima cijelo područje
radius2
drugi promjer elipse područja traženja, ukoliko je 0 u obzir se uzima cijelo područje
angle
kut zakreta elipse u smjeru kazaljke na satu
min_points
minimalan potreban broj točaka u traženom području, ukoliko ima manje točaka od traženog broja, ta točka se smatra bez vrijednosti nodata
nodata
vrijednost koja predstavlja 'nepostojeću vrijednost'


Recimo da želimo koristiti metodu invdist potpuna naredba bi izgledala:

gdal_grid -a invdist:power=2.0:smoothing=1.0:radius1=20:radius2=20 -of GTiff -ot Float32 -l podaci podaci.vrt dem.tiff

Ukratko, postavili smo parametre metode interpolacije, kao izlazni format -of GTiff postavljen je GeoTiff, tip izlazne datoteke je -ot Float32 što znači da je svaki element rastera 32bitni realni broj (i više nego dovoljno za naše potrebe). Također smo odabrali sloj podataka -l podaci, postavili ulaznu datoteku podaci.vrt i izlaznu datoteku dem.tiff.

Nakon izvršavanja naredbe upotrebom alata gdalinfo možemo saznati osnovne informacije o novo stvorenom rasteru:

$ gdalinfo dem.tiff
Driver: GTiff/GeoTIFF
Files: dem.tiff
Size is 256, 256
Coordinate System is `'
Origin = (5585728.379999999888241,5063425.360000000335276)
Pixel Size = (1.239687500001310,1.811992187500437)
Image Structure Metadata:
  INTERLEAVE=BAND
Corner Coordinates:
Upper Left  ( 5585728.380, 5063425.360) 
Lower Left  ( 5585728.380, 5063889.230) 
Upper Right ( 5586045.740, 5063425.360) 
Lower Right ( 5586045.740, 5063889.230) 
Center      ( 5585887.060, 5063657.295) 
Band 1 Block=256x8 Type=Float32, ColorInterp=Gray

Između ostalog i rezoluciju pojedinog elementa rastera, ukoliko želimo raster drugačije rezolucije potrebno je za gdal_grid postaviti parametar -outsize. Primjerice za rezoluciju 1x1 dodali bi parametar -outsize 319 466 prije navedenoj gdal_grid naredbi.

gdal_contour izrada slojnica

Slojnice dobivene sa gdal_contour alatom

Alat za izradu slojnica gdal_contour omogućava spremanje slojnica u bilo kojem vektorskom formatu koji podržava OGR, no ukoliko ne definiramo format spremiti će ih u SHP formatu.

Naredbom:

gdal_contour -a visina -3d -i 1 dem.tiff slojnice1.shp

se u tekućem direktoriju stvara datoteka slojnice1.shp koristeći dem.tiff izvor podataka sa intervalom od 1 jedinice (u ovom slučaju metra). Osim toga svaka točka će biti određena u 3d koordinatnom sustavu, a informacija o visini će se zapisati kao atribut -a visina.

Vizualizacija ovisi o softveru koji preferirate. Slike u tutorijalu su napravljene vizualizacijon deriviranih podataka u QGIS alatu.

Vizualizacija svih slojeva dobivenih geoprocesiranjem opisanim u tutorijalu