Programy obsługiwane z linii komend nie gryzą! Potrzeba zmusiła mnie do zaznajomienia się bliżej z programem, a raczej programami z biblioteki GDAL. Doszło do tego, że nie tylko się zaznajomiłem, ale nawet zaprzyjaźniłem:) W tym wpisie chciałbym zamieścić informacje o podstawach używania tego programu dla osób zupełnie nie zaznajomionych z programami typu command line…
Początki/Instalacja
To, że GDAL nie ma GUI (choć już prawie ma – ale o tym na końcu) wcale nie jest takie straszne. Najpierw instalacja:
- Windows: Przeczytaj ten wpis
- Linux (Ubuntu): Jestem początkujący w tej materii. Jeżeli systemie jest już zainstalowany QGIS – GDAL na pewno już tez tam jest. Aby to sprawdzić wystarczy napisać w terminalu gdalinfo i nacisnąć enter. Jeżeli wywali błąd to go nie ma, jeżeli wylistuje komendy – na pewno jest:) Aby zainstalować można użyć instalatora pakietów synaptic lub: chwila googlania i jest: Wystarczy wpisywać po kolei komendy.
wget http://download.osgeo.org/gdal/gdal-1.7.7.tar.gz
tar -zvxf gdal-1.7.1.tar.gz
cd gdal-1.7.1
./configure
make
make install
Wprowadzenie
Kiedy GDAL jest poprawnie zainstalowany możemy go uruchomić w terminalu. Pod Windows musimy wejść w “cmd”, i przejść do katalogu, w którym zainstalowane są pliki GDAL.
W Linux terminal możemy otworzyć gdziekolwiek jesteśmy (co jest o wiele wygodniejsze) i wpisywać komendy. Linux sam sobie znajdzie o jaki program nam chodzi i dojdzie do tego gdzie go sobie zainstalował.
Teraz wchodzimy na stronę internetową, z której będziemy bardzo często korzystać. http://www.gdal.org/gdal_utilities.html. Znajduje się tam cała (niestety uboga) dokumentacja. Pod nazwą każdego programiku jest opisana jego składnia. Generalnie wygląda ona tak:
nazwa_programu -flagi, czyli parametry wymieniane od myślnika z nazwą nazwa pliku wejściowego nazwa pliku wyjściowego
Dla pierwszej próby możemy wykonać gdalinfo, czyli program, który powie nam wszystko o rastrze. Jeżeli jesteśmy użytkownikami Windows – będzemy musieli podać całą ścieżkę dostępu do pliku. Pod linxem otwieramy okienko z plikiem, prawy klik, “open in terminal” i już system wie, gdzie szukać pliku…
mdrozdz@mdrozdz:~/GIS/Dragash$ gdalinfo drgash3.tif
(część pomarańczowa to to co widzimy w oknie terminala – oczywiście u każdego będzie inaczej…) To polecenie mówi: “Wyświetl informacje o pliku drgsh3.tif znajdującym się w katalogu costam/GIS/Dragash/”. Oto wynik:
Driver: GTiff/GeoTIFF
Files: drgash3.tif
Size is 3521, 3164
Coordinate System is `'
GCP Projection =
PROJCS["unnamed",
GEOGCS["Pulkovo 1942",
DATUM["Pulkovo_1942",
SPHEROID["Krassowsky 1940",6378245,298.2999999999998,
AUTHORITY["EPSG","7024"]],
AUTHORITY["EPSG","6284"]],
PRIMEM["Greenwich",0],
UNIT["degree",0.0174532925199433],
AUTHORITY["EPSG","4284"]],
PROJECTION["Transverse_Mercator"],
PARAMETER["latitude_of_origin",0],
PARAMETER["central_meridian",21],
PARAMETER["scale_factor",1],
PARAMETER["false_easting",500000],
PARAMETER["false_northing",0],
UNIT["metre",1,
AUTHORITY["EPSG","9001"]]]
GCP[ 0]: Id=1, Info=
(96,91) -> (458573.87063663,4651840.00512974,0)
GCP[ 1]: Id=2, Info=
(1704,101) -> (468930.421363179,4651787.08874793,0)
GCP[ 2]: Id=3, Info=
(3421,94) -> (479286.956331199,4651749.29175189,0)
GCP[ 3]: Id=4, Info=
(95,1584) -> (458519.863297039,4642583.7678137,0)
GCP[ 4]: Id=5, Info=
(1761,1586) -> (468889.91638401,4642530.86808639,0)
GCP[ 5]: Id=6, Info=
(3422,1583) -> (479259.953262002,4642493.08298787,0)
GCP[ 6]: Id=7, Info=
(92,3073) -> (458465.944160544,4633327.6642608,0)
GCP[ 7]: Id=8, Info=
(1704,3063) -> (468849.477558276,4633274.78163536,0)
GCP[ 8]: Id=9, Info=
(3424,3072) -> (479232.994295624,4633237.00875391,0)
Metadata:
AREA_OR_POINT=Area
Image Structure Metadata:
INTERLEAVE=BAND
Corner Coordinates:
Upper Left ( 0.0, 0.0)
Lower Left ( 0.0, 3164.0)
Upper Right ( 3521.0, 0.0)
Lower Right ( 3521.0, 3164.0)
Center ( 1760.5, 1582.0)
Band 1 Block=3521x2 Type=Byte, ColorInterp=Palette
Teraz wiemy wszystko… Możemy odwiedzić stronę o gdalinfo – w poszukiwaniu parametrów, które mogą się nam przydać…
Pierwsza transformacja
Skoro już wiemy jak obsługiwać się programami GDAL – przekonwertujmy plik Drgash3. tif do innego układu współrzędnych. Użyjemy do tego gdalwarp. Jak widać parametrów do wyboru jest już więcej…
mdrozdz@mdrozdz:~/GIS/Dragash$ gdalwarp -t_srs "EPSG:4326" drgash3.tif drgash3_wgs84.tif
Czyli na nasze: “Przekonwertuj plik drgash3.tif na układ współrzędnych EPSG 4326 i zapisz pod nazwą drgash3_wgs84.tif”
Copying color table from drgash3.tif to new file.
Creating output file that is 3958P x 2638L.
Processing input file drgash3.tif.
0...10...20...30...40...50...60...70...80...90...100 - done.
Podczas wykonywania nowego pliku w terminalu wydrukuje się powyższy napis… a w katalogu pojawi się plik drgash3_wgs84.tif, który możemy sobie zobaczyć w QGIS. Działa.
Podsumowanie
Ten wpis miał za zadanie pokazać nieprzekonanym, że można i nie jest to trudne oraz pokazać krok po kroku jak wszystko wykonać… Uzbrojeni w tę wiedzę, dokumentację na stronie oraz google można dokonać znacznie więcej…
A teraz coś dla zwolenników okienek. Kilka tygodni temu do wersji 1.0.0 dorosła wtyczka do QGIS GdalTools, która pomaga ujarzmić GDAL. Wystarczy ją pobrać, aby na pasku menu pojawiła się zakładka RASTER. Dzięki niej można prościej nadawać parametry i konstruować komendy, jednak nie posiada ona wszystkich możliwości. W zdecydowanej większości przypadków wystarcza… A wygląda to tak:
Powodzenia w używaniu GDAL. W jeden i drugi sposób!
Ocena

































GDAL (i OGR) jest fajny :) Ostatnio bawiłem się gdaldem – naprawdę ciekawe rezultaty.
Do linii komend można się przyzwyczaić (jak do wszystkiego), choć z drugiej strony nigdy nie pamiętam czy najpierw jest plik wejściowy, czy wyjściowy… Zresztą twórcom też trochę brak konsekwencji, bo np. w ogr2ogr mamy dst_datasource_name src_datasource_name czyli na odwrót :/
Co do Windowsa i terminala, to wystarczy ustawić odpowiednie zmienne środowiskowe, a w przypadku pakietu FWTools odpalić skrypt setfw.bat lub uruchomić FWTools Shell z menu Start – wtedy GDAL będzie dostępny globalnie.
Najpierw wejście, potem wyjście – jak w życiu:) tak można zapamiętać:)
Mi najbardziej doskwiera brak dobrej dokumentacji. W następnym poście opiszę kilka bardziej zaawansowanych funkcji, gdzie mocniej to się wdaje we znaki. Oprócz skromnej informacji na stronie i innych blogach to o działanie chyba tylko twórców można się pytać:)
Dzięki za info o zmiennych środowiskowych – na pewno się przyda!
driver http://valuminumhlvm-i.ANTIQUEFURNINISHING.INFO/tag/driver+hp+5500/ : 5500…
5500…