Documente Academic
Documente Profesional
Documente Cultură
de puncte
de Mihai Terente
Publicat la 23 Nov 2008 | Seciunea: Tutoriale | Categoria: GIS/
Nivel de dificultate:
Fig. 1
Se acceseaz modulul Convert Polygons to Lines din lista de module, din seciunea
Shapes-Lines cu click pe numele su i se selecteaz ca input fiierul cu poligoane. Se
execut cu click pe Execute n fereastra din dreapta.
Fig. 3
Se nelege c .shp-ul de tip linie proaspt creat este doar intermediar. El are aceeai
denumire cu cea a .shp-ului poligon din care a rezultat i de accea l vom redenumi pentru
a nu se crea confuzii n pasul urmtor. Pentru aceasta se selecteaz din tab-ul Data i se
redenumete n cmpul Name din fereastra din dreapta. (fig. 4)
Pentru a extrage punctele din vertecii liniilor (i implicit ai poligoanelor din care au
rezultat liniile) se utilizeaz n mod analog modulul Points from Lines din seciunea
Shapes-Points (fig. 5). Acest modul permite chiar ndesirea punctelor pe fiecare linie, n
afar de verteci, la o anumit distan, n unitatea de msur a sistemului de coordonate.
n tutorialul de fa nu vom folosi ns aceast opiune, care poate fi accesat cu bifnd
csua Insert Additional Points din secunea Options a modulului.
Fig. 5
n acest moment .shp-ul cu puncte e gata. Acestea reprezint exact vertecii poligoanelor
iniiale ale cldirilor din Suceava. Se redenumete i se vizualizeaz dup plac (fig. 6).
Fig. 6
2. Adugarea coordonatelor
Pentru aceast etap se va folosi modulul Add Coordinates to Points. Acesta se acceseaz
din seciunea Shapes-Points. n fereastra din dreapa se selecteaz .shp-ul de input i se
execut (fig. 7).
Fig. 7
Se verific n tabelul de atribute al .shp-ului cu puncte, care ar trebui s arate ca n fig. 08.
Fig. 8
Rezultatul se salveaz pe hard dup cum s-a artat mai devreme i se poate folosi n orice
aplicaii care suport formatul shapefile.
Iat un bun exemplu care arat c aplicaia SAGA, dei se concentreaz pe manipularea
datelor raster, se dovedete o soluie foarte potrivit i pentru lucrul cu date de tip vector.
Datele spaiale se gsesc stocate n diferite formate. De multe ori, pentru a lucra cu ele,
suntem nevoii s le convertim dintr-un format n altul. n acest material vom vorbi
despre conversia datelor din format DXF (Drawing eXchange Format) n format ESRI
Shapefile i invers.
Formatul DXF a fost dezvoltat de compania Autodesk i folosit pentru prima dat n
decembrie 1982. Acest format este folosit n special n de ctre cei ce lucreaz n
domeniul proiectrii asistate de calculator, cunoscut generic sub denumirea de CAD.
Formatatul shapefile a fost dezvoltat de compania ESRI i introdus pe pia odat cu
lansarea versiunii 2.0 a aplicaiei ArcView GIS, n anul 1990.
Pentru acest lucru s-au utilizat programele AutoCAD Map 3D, ArcGis 9.2 i Global
Mapper, dei probabil exist i alte soluii.
Figura 1.
Urmtorul pas const n exportarea diferitelor layere n format shapefile folosind
urmatoarele comenzi: File Export As SDF, se deschide o nou fereastr n care
trebuiesc trecute numele fiierului i tipul n care dorim s l salvm (ESRI shapefile),
click OK, dup care se deschide o ferestr nou cu mai multe tab-uri. n tabul Selection,
la Object Type, selectm de ce tip s fie vectorii exportai (n cazul nostru de tip poligon),
iar la Filter selection Layers se pot selecta unul sau mai multe layere pe care dorim s
le exportm (n cazul nostru stratul index). n tab-ul Data de la Select Attributes Object
Properties AcDbEntity se selecteaz General apoi click OK (Figura 2).
Figura 2.
b). Folosind ArcGIS
O alt modalitate, mai simpl, de a converti fiierele din format DXF n format shapefile,
presupune utilizrea aplicaiei ArcGIS. Paii sunt urmtorii:
Se lanseaz aplicaia ArcGIS i se ncarc fiierul DXF (programul ArcGIS citete
nativ astfel de formate) (Figura 3).
Figura 3.
Pentru salvarea n format shapefile se procedeaz astfel: click dreapta n fereastra Layers
pe stratul index.dxf, polygon n cazul nostru (acelasi lucru se poate face si pentru celelalte
straturi), urmat de comanda Data Export Data, se alege calea unde vrem s fie salvat
fiierul i tipul acestuia (Figura 4).
Figura 4.
O problema care apare n momentul conversiei fiierelor DXF este legat de atributele
datelor vectoriale. De regul, n mediu CAD, datele de tip atribut sunt stocate pe acelai
layer sau pe un layer separat, sub form de etichete de tip text. Fiierele shapefile
stocheaza aceast informaie ntr-un fiier separat, de tip tabel, cu extensia .dbf. Problema
poate fi rezolvat n ArcGIS folosind comanda Spatial Join. Paii sunt:
Figura 5.
Figura 6.
Se deschide fereastra Control Center (click pe butonul Open Control Center). Se opteaza
pentru afiarea n fereastra de lucru a atributele stratului respectiv (Options de unde se
selecteaz Use Selected Attribute Value for Name) (Figura 7).
Figura 7.
Ultimul pas const n exportul fiierului shapefile n format DXF, dupa cum urmeaz:
Figura 8.
Convenii
n text vom folosi urmtoarele convenii pentru a indica anumite elemente sau aciuni:
Date
Putei descrca de aici fiierul raster necesar pentru completarea tutorialului.
Introducere
QGIS suport module de digitizare i sprijin editarea elementelor spaiale ntr-o gam
larg de formate, inclusiv shapefiles, straturi PostGIS, i straturi GRASS.
Digitizarea
Scopul nostru este de a digitiza unele obiecte din rasterul 47_45.tif (este vorba de una din
foile de harta austriece, disponibile la http://earth.unibuc.ro/download/harile-austriece1910-reproiectate-in-stereo70).
Exerciiul 1. Crearea unui nou Shapefile
Vom crea un shapefile cu un ID i NUME
1). Alegem New Vector Layer. de la meniul Layer
2). Alegem opiunea poligon la Type
3). n Attributes introducem la Name ID iar la Type alegem Integer
4). Facem click pe butonul Add
5). n Attributes introducem la Name Nume iar la Type alegem String
6). Facem click pe butonul Add
Cnd totul este setat, fereastra de dialog ar trebui s arate ca n Figura 1:
Fiierul shapefile este creat i afiat n QGIS. Pentru a ncepe digitizarea avem nevoie de
permisiunea editrii pentru noul strat: click dreapta pe tem i din meniul de tip pop-up
alegem Toggle editing (Figura 2).
6). Dac n timpul digitizrii trebuie s mrim sau s micorm utilizai scrol-ul mouseului.
7). Pentru a termina editarea lacului, efectum click-dreapta la punctul final Acest lucru
deschide o caset de dialog n care vom introduce valorile atributelor definite la exerciiul
8). Introducem un numr de identificare i un nume pentru lac (Figura 4).
Pentru a salva modificrile trebuie s oprim editarea, fcnd clic pe instrumentul Toggle
editing din bara de instrumente. O caset de dialog apare i alegem YES pentru a salva
editrile (Figura 5).
Editarea trsturilor
Am observat c n timpul digitizrii nu am putut corecta greelile fcute. Din fericire se
pot face corecturi asupra obiectelor digitizate. QGIS indic prin verteci (sau puncte)
locul unde s-au marcat punctele de inflexiune ale poligonului. Instrumentele folosite
pentru digitizare se afla n bara de instrumente digitizare i permit s adugai, s tergei
i s mutm verteci pentru a modifica un obiect (Figura 7).
Editarea vertecilor
Odat ce tolerana este stabilit, putem muta verteci pentru a corecta greelile pentru a se
suprapune ct mai bine peste linia de rm. Doar facem click pe butonul Move Vertex,
plasm cursorul peste vertexul care se va muta i l micm n noua locaie. Cnd se
elibereaz mouse-ul, vertexul este mutat iar forma de poligonului sufer modificri
(Figura 9).
Ce se ntmpl dac de stratul surs i stratul int au scheme diferite (nume de cmpuri i
tipurile nu sunt aceleai)? QGIS populeaz ceea ce se potrivete i ignor restul. Dac nu
ne pas despre atributele copiate n stratul int, nu conteaz cum definim cmpurile i
tipurile de date. Dac dorim pstram n totalitate cmpurile trebuie s ne asigurm c
scheme se potrivesc.
Problema georeferenierii unei imagini scanate este una curent, mai ales cnd
principalele surse de informaii sunt hrile tiprite. Ne propunem realizarea unui tutorial
prin care s artm ce reprezint georeferenierea i cum se poate realiza aceasta cu o
aplicaie GIS open-source.
Georeferenierea unei imagini presupune alinierea acesteia la un sistem de coordonate
definit. Matematic, este o operaie de translaie i/sau rotaie a sistemului de coordonate
al imaginii (care numeroteaz coloanele i liniile de pixeli ncepnd cu cel din stnga sus)
fa de sistemul de coordonate n care se realizeaz georeferenierea. Problema se rezum
la rezolvarea unor sisteme de ecuaii i aflarea unor coeficieni care se aplic fiecrui
pixel al imaginii pentru a-l face s corespund unei anumite poziii geografice, definite
printr-o pereche de coordonate matematice/geografice.
Concret, utilizatorul ofer ca input puncte de pe imagine ale cror coordonate le cunoate,
iar programul aplic un algoritm n funcie de numrul de puncte introduse (care oricum
trebuie s fie cel puin trei). Imaginea este astfel rectificat i poate fi salvat separat,
mpreun cu informaiile de georefereniere (care se salveaz fie ntr-un fiier separat, cu
acelai nume dar cu extensie diferit, de ex. .jgw, .tfw, .eww, fie n headerul imaginii, n
cazul fiierelor geotiff).
Vom exemplifica georeferenierea unei imagini n aplicaia open source Quantum GIS.
Imaginea este un fragment dintr-o hart a a pantelor pentru bazinul montan al
Teleajenului, i este n proiecie Stereo 70 (fig. 1)
Fig. 2
Se ncarc imaginea cu butonul din fereastra Georeferencer. Aceasta va aprea n
fereastra separat denumit Reference points, care iniial are o dimensiune prea mic
pentru a se putea lucra cu ea, dar care se poate redimensiona (fig. 3).
butoanele de navigare (Zoom In, Zoom Out, Zoom to Layer i Pan) i butoanele
de Add Point i Delete Point, care se refer la punctele pe care le introduce
utilizatorul ca repere pentru georefereniere;
n partea de jos:
cmpul Transform Type, cu dou opiuni: Linear i Helmert. Acestea sunt dou
funcii ce pot fi aplicate pentru a face corespondena ntre cele dou sisteme de
coordonate: cel intern, al imaginii, i cel geografic. Mai multe detalii la
Wikipedia: Linear map i Wikipedia: Helmert transformation. Pentru acest tutorial
vom aplica o tranformare liniar.
cmpul World file, n care se va specifica numele i destinaia fiierului care va
conine datele de georefereniere. Acesta este un fiier text pe care aplicaia l
salveaz cu extensia .wld. Aceasta trebuie modificat ulterior n .tfw, dac
imaginea care s-a georefereniat este .tif sau .jgw, dac imaginea este .jpg. Acest
fiier trebuie salvat n folderul care conine imaginea, cu aceeai denumire a
imaginii i, n cazul n care imaginea se copiaz/mut ntr-un alt folder trebuie s
fie mutat i el (ca o regul general: cnd se copiaz fiiere georefereniate, fie
imagini, fie vectori, se copiaz toate fiierele cu aceeai denumire a celui mutat,
chiar dac au extensii diferite).
n continuare se introduc punctele ale cror coordonate sunt cunoscute. Aceasta se face
zoomnd pn n punctul respectiv, fcnd click cu Add point i introducnd
coordonatele de la tastatur n fereastra ce se deschide (fig. 4)
Fig. 4
Punctul va aprea apoi marcat pe hart, indiferent de nivelul de zoom, ca n fig. 5.
Fig. 5
Se continu n mod analog cu celelalte puncte (minim trei, dar cu ct sunt mai multe cu
att georeferenierea va fi mai precis, pn la maxim 8), care se vor distribui uniform pe
hart, n nici un caz pe o singur linie (fig. 6)
Fig. 6
n final, dup ce s-au marcat toate punctele de referin, se apas butonul Create, din
partea de jos a ferestrei de georefereniere. Astfel se va crea fiierul text cu datele de
georefereniere, care va trebui redenumit aa cum s-a artat mai sus (.tfw, sau .jgw),
pentru ca imaginea ce tocmai a fost georefereniat s poat fi folosit i n alte aplicaii
GIS. La ncrcarea n diferite programe de GIS se va avea grij s se specifice, acolo
unde este cazul, sistemul de coordonate n care este georefereniat imaginea, n cazul
nostru Stereo 70.
ILWIS este o soluie open-source, dezvoltat iniial de International Institute for GeoInformation Science and Earth Observation (ITC). O descriere introductiv concis a
aplicaiei ILWIS aflai aici.
Dincolo de funciile sale, ILWIS vine cu o documentaie generoas, (inclus att n helpuri, ct i ntr-un Ghid de utilizare i o colecie de 27 de studii de caz, tutoriale care
explic diferite funcii ale programului aplicate n rezolvarea unor probleme concrete de
geomorfologie, hazarde naturale, inginerie geologic, hidrologie, modelare de mediu,
planificare urban i pedologie). Fiind un program creat ntr-un mediu academic, este
foarte potrivit pentru studiu individual i ar putea fi folosit cu succes n cursurile
universitare de GIS de la noi.
ntruct programul nu ofer un fiier care s descrie proiecia Stereo 70, mi propun s
art cum se poate crea acest fiier care poate fi asociat cu fiierele .shp importate, sau cu
cele nou create.
Se observ c la importul unor fiiere oarecare .shp, lucrate n proiecie Stereo 70,
programul recunoate corect valorile coordonatelor entitilor (Boundaries of map n
fig. 1), ns nu le asociaz cu nici un sistem de coordonate.
Fig. 1 Detaliu cu proprietile unui fiier .shp proaspt importat n sistemul de fiiere
ILWIS. A se observa unknown n cmpul Coordinate System.
Este necesar crearea unui astfel de fiier i precizarea detaliilor proieciei Stereo 70. Din
meniul ILWIS se alege File>Create>Coordinate System.. (fig. 2)
Fig. 2.
n prima fereastr se alege numele sistemului de coordonate, se ofer o descriere a
fiierului (aceast posibilitate de a descrie obiectele apare peste tot n ILWIS, i se poate
dovedi foarte util cnd baza de date devine foarte mare) i se selectez tipul de sistem de
coordonate (fig. 3)
Fig. 3
Pasul urmtor: selecia tipului de proiecie: n cazul nostru Projection>StereoGraphic (fig.
4). Exist posibilitatea definirii limitelor sistemului de coordonate. Deocamdat nu am
gsit suficiente informaii ca s decid cum e mai bine. Am lsat nedefinit i am observat
c reprezentarea obiectelor nu este influenat. Oricum, aceste limite se pot defini i mai
trziu.
Fig. 4
Se selecteaz elipsoidul: Krassovsky 1940 (fig. 5). Din fericire este predefinit.
Fig. 5
Se alege datum-ul: S42 (Pulkovo 1942). Aici denumirea din parantez poate crea
confuzii, a se observa ns c datumul Pulkovo 1942 apare i el n lista ILWIS. S42 se
refer aadar la Dealul Piscului (fig. 6).
Fig. 6
Iar ultimii parametri ai sistemului de coordonate (Easting, Northing, Central Meridian,
Central Parallel i Scale Factor) se introduc manual de la tastatur, ca n fig. 7. Aceste
detalii sunt preluate de aici: baza de date a European Petroleum Survey Group (EPSG),
printr-o cutare dup Stereo 70 n cmpul Name
Fig. 8
Download
Un astfel de fiier de configurare, creat folosind metodologia descris anterior, poate fi
descrcat direct de aici.
Concluzii
n acest mod se poate defini orice sistem de coordonate pentru orice proiecie, dac se
cunosc urmtoarele:
tipul de proiecie
elipsoidul (iar dac nu este predefinit se poate defini de ctre utilizator)
datum-ul (idem n privina definirii de ctre utilizator)
parametrii specifici: E-ing, N-ing, Central Meridian/Parralel, Scale Factor
Toate aceste informaii se pot obine prin interogarea bazei de date EPSG.
Introducere
PostGIS este o extensie spatiala a PostgreSQL, serverul de baze de date relationale, care
asigura toata functionalitatea descrisa in specificatiile OpenGIS Simple feature for
SQL, functionalitate ce permite efectuarea unor interogari si analize spatiale complexe
folosind exclusiv comenzi SQL.
Ca si Oracle Spatial, DB2 Spatial si SQL Server Spatial, PostGIS poate fi numit
PostgreSQL Spatial, prin aceasta intelegandu-se ca adauga functii specifice manipularii
datelor spatiale serverului de baze de date relationale PostgreSQL, si anume:
adauga tipul de date geometry la cele existente (integer, date, varchar etc);
ofera functii care opereaza asupra datelor de tip geometry si pot furniza diverse
informatii spatiale: ST_Distance (geometry, geometry), ST_Area(geometry),
ST_Length(geometry), ST_intersects(geometry, geometry) etc;
pune la dispozitie un mecanism de indexare care permite interogari pe criterii
spatiale (de exemplu obiectele aflate intr-o zona de froma dreptunghiulara)
efectuate intr-un interval de timp foarte scurt.
Instalare
Kit-ul de instalare si sursele PostgreSQL pot fi descarcate de la adresa
http://www.postgresql.org
Kit-ul de instalare si sursele PostGIS pot fi descarcate de la adresa
http://postgis.refractions.net
Kit-ul de instalare si sursele GEOS pot fi decarcate de la adresa http://geos.refractions.net
Kit-ul de instalare si sursele Proj4 pot fi descarcate de la adresa http://proj.maptools.org
Instrumentul de administrare PgAdmin poate fi descarcat de la adresa
http://www.pgadmin.org.
Instalarea PostgreSQL
Pasi:
1. Dublu clic postgresqlxxx.msi;
p. 2. Selectarea limbii se selecteaza enlish;
p. 3. Acord licenta;
p. 4. Optiuni de instalare se deselecteaza PostGIS Spatial Extension;
p. 5. Instalarea PostgreSQL ca serviciu si selectarea contului sub care ruleaza servciul; se
introduc: numele serviciului / service name; numele contului / account name implicit
postgres nu trebuie sa fie un cont de administrator; domeniul contului / account domain
este suficient si numele masinii; parola contului / account password;
p. 6. Initializarea unui cluster de baze de date / databaze cluster (un grup de baze de date
controlate de un singur server PostgreSQL); se specifica numarul portului / port number
se introduce 5432; adresele masinilor care se vor putea conecta la bazele de date din acest
cluster / addresses se selecteaza accept connection on all addresses, not just localhost;
setari locale / locale se selcteaza C; codificarea caracterelor / encoding se selecteaza
SQL_ASCII; numele pentru superuser / superuser name utilizat pentru conectarea la
baza de date se va seta postgres desi nu e recomandat; parola pt superuser /
passoword se introduce postgres;
Instalarea PostGIS
1. Dubluc clic postgisxxxsetupxxx.exe;
p. 2. Optiuni de instalare se deselecteaza create spatial database modul in care se
creaza o baza de date cu componente spatiale se va exemplifica ulterior;
4. Navigati in obiectele bazei de date nou create si opriti-va pe sectiunea Tables; observati
tabelele geometry_columns si spatial_ref_sys.
Introducere
Urmare a unui mesaj sosit pe lista de discuii m-am hotrt s scriu un scurt tutorial
despre cum poate fi tiat un strat de tip grid folosind o masc vectorial. Voi ilustra acest
lucru folosind dou aplicaii proprietare (ArcGIS 9.x i Global Mapper 9.x) i una open
source (SAGA GIS). Pentru exemplificare am ales un set de date climatice, descrcat n
format ESRI GRID de la WorldClim.org i frontiera Romniei, descrcat de pe geospatial.org.
ArcGIS 9.x
ncrcarea datelor se face folosind butonul Add Data. Rezultatul ar trebui s fie similar cu
cel prezentat n Figura 6.
la un mic truc, ajutai de opiunile Spatial Analyst. Mai nti va trebui s facem dou setri
n caseta Spatial Analyst/Options:
Figura 11. Caseta de import a datelor ESRI GRID prin intermediul modulului GDAL.
Masca vectorial se ncarc ceva mai simplu, folosind comanda File/Shapes/Load
Shapes. O dat ncrcate, datele pot fi reprezentate ca n Figura 12.
Figura 17. Selectarea datelor de intrare pentru funcia Clip Grid with Polygon.
Rezultatul ar trebui s fie similar cu cel prezentat n Figura 18. Mai departe, acesta poate
fi convertit n alte formate de fiier folosind modulul de export.
Introducere
GDAL (GDAL Geospatial Data Abstraction Library) este o librarie opensource pentru
manipularea datelor geospatiale, atat in format raster cat si vector. Aceasta este compusa
dintr-o suita de tooluri command line, pe care le vom prezenta in acest articol, si din
cateva API-uri conexe ce permit dezvoltarea unor scripturi/tooluri in orice limbaj de
comoditate Perl, Python, Java, sau limbaje precum C / C++ / C#.
Libraria suporta orice platforma Uni(x), precum si platforme Win32 sau Mac OS. GDAL
este publicat sub licenta Public Domain, codul sursa sau distributiile binare pentru Linux
si Win32 putand fi descarcat de pe site-ul http://www.gdal.org.
Suita GDAL este considerata la ora actuala cea mai puternica si vasta suita de manipulare
raster/vector, stand la baza multor softuri proprietare, fiind adoptat si integrat in solutiile
GIS ale unor companii foarte cunoscute precum: ESRI, Leica, GlobalMapper, sau in
celebrul Google Earth.
GDAL se detaseaza net de orice adversar prin numarul mare de formate raster si vector
suportate. Cele mai importante formate de date spatiale, precum GeoTiff, ERDAS Img,
ESRI Shapefile, sunt foarte bine implementate si optimizate la manipulare. GDAL
implementeaza suport solid si extensiv pentru formate non-spatiale, cum sunt formatele si
derivatele posibile de rasteri gen BMP, PNG, JPEG, TIFF. Totodata, GDAL
implementeaza sintagma SQL atat pentru metadatele (ex: .dbf, .tab) ce vin atasate unor
formate vectoriale cat si suport pentru conexiuni directe la servere SQL, atat opensource
cat si proprietare. GDAL mai suporta manipularea directa a materialelor disponibile
online via map servere ce implementeaza protocolul WMS.
Modulului de transformare a coordonatelor utilizeaza baza de date EPSG
(http://www.espg.org), disponibila si aceasta sub o licenta gratuia, cu anumite restrictii,
perfect de inteles, la capitolul re-distribuire/alterare. Baza EPSG cuprinde un numar
impresionant de sisteme de coordonate, inclusiv cele romanesti, orice profesionist putand
regasi aici toate transformarile si datum-urile necesare.
GDAL in actiune
Vom incepe prin a descrie exact ce contine suita GDAL. Din punct de vedere raster avem:
In continuare vom folosi notiunea de obiect pentru a face referire catre un set de date
raster sau vector. Consideram ca termenul obiect este mai corect decat cel de fisier,
deoarece, de multe ori, un strat este format dintr-un set de fisiere (ex: tif+tfw sau
shp+shx+dbf). Mai mult, termenul fisier nu acopera satisfacator cazul staturile publicate
via WMS (un strat al unui mapserver de examplu). In concluzie, notiunea de obiect se
refera la un fisier sau grup de fisiere ce compun rasterul/vectorii, totoadata se refera la
posibilitatea de fi local pe hardisk sau remote via http:// sau chiar WMS.
gdalinfo
Este un utilitar foarte prietenos ce ne permite sa aflam toate informatiile despre un
fisier/obiect raster, idiferent daca acesta este fisier local sau este remote via http sau
WMS. gdalinfo, ca si celelalte utilitare GDAL, face intodeauna abstractie de locatie si
executa in mod similar input-ul.
In continuare va prezentam un exemplu de utilizare gdalinfo pe un obiect aflat remote:
$ gdalinfo.exe http://earth.unibuc.ro/images/austrians/p_39_47_100.jpg
Driver: JPEG/JPEG JFIF
Files: none associated
Size is 3729, 5139
Coordinate System is `'
Image Structure Metadata:
INTERLEAVE=PIXEL
COMPRESSION=JPEG
Corner Coordinates:
Upper Left (
0.0,
0.0)
Lower Left (
0.0, 5139.0)
Upper Right ( 3729.0,
0.0)
Lower Right ( 3729.0, 5139.0)
Center
( 1864.5, 2569.5)
Band 1 Block=37291 Type=Byte, ColorInterp=Red
Image Structure Metadata:
COMPRESSION=JPEG
Band 2 Block=37291 Type=Byte, ColorInterp=Green
Image Structure Metadata:
COMPRESSION=JPEG
Band 3 Block=37291 Type=Byte, ColorInterp=Blue
Image Structure Metadata:
COMPRESSION=JPEG
Din rezultat aflam ca e vorba de un obiect raster, fara proiectie specificata, in trei benzi
RGB, cu compresia de tip JPG si dimensiune de 37295139 pixeli. Pentru interpretare
GDAL a folosit driverul generic raster JPEG (jfif). Practic acest obiect este o poza negeoreferentiata.
Sa vedem un exemplu de obiect spatial adevarat, copiat local pe HDD de pe site-ul
earth.unibuc.ro (mai exact linkul http://earth.unibuc.ro/download/datele-landsat-etm-instereo701):
$ gdalinfo.exe RGB321-L-34-020.tif
Driver: GTiff/GeoTIFF
Files: RGB321-L-34-020.tif
Size is 2699, 2659
Coordinate System is:
LOCAL_CS[ Geocoding information not available Projection Name = Unknown
Units = other GeoTIFF Units = other,
UNIT[unknown,1]]
Origin = (235438.213641703130000,691205.184220034980000)
Pixel Size = (14.590382532428649,-14.590382532428643)
Metadata:
AREA_OR_POINT=Area
TIFFTAG_SOFTWARE=IMAGINE TIFF Support
Copyright 1991 1999 by ERDAS, Inc. All Rights Reserved
@(#)$RCSfile: etif.c $ $Revision: 1.10.1.9.1.9.2.11 $ $Date: 2004/09/15
18:42:01EDT $
TIFFTAG_XRESOLUTION=1
TIFFTAG_YRESOLUTION=1
TIFFTAG_RESOLUTIONUNIT=1 (unitless)
Image Structure Metadata:
INTERLEAVE=PIXEL
Corner Coordinates:
Upper Left ( 235438.214, 691205.184)
Lower Left ( 235438.214, 652409.357)
Upper Right ( 274817.656, 691205.184)
Lower Right ( 274817.656, 652409.357)
Center
( 255127.935, 671807.271)
Band 1 Block=6464 Type=Byte, ColorInterp=Red
Band 2 Block=6464 Type=Byte, ColorInterp=Green
Band 3 Block=6464 Type=Byte, ColorInterp=Blue
Din rezultat reise ca avem un obiect GeoTiff, proiectia nu este cunoscutata, dar din
coordonatele extend-ului banuim ca este vorba de Stereo70. Acest obiect a fost produs si
exportat in suita de softuri ERDAS. Obiectul este un raster color, cu trei benzi RGB,
necomprimat, iar sisteml de coordonate din header nu este declarat sau este neinterpretabil conform topologiei EPSG.
Ultimul exemplu realizat pe un raster de elevatie de la NASA:
$ wget ftp://e0srp01u.ecs.nasa.gov/srtm/version2/SRTM3/Eurasia/N46E038.h
gt.zip
$ unzip -e N46E038.hgt.zip
$ gdalinfo.exe N46E038.hgt
Driver: SRTMHGT/SRTMHGT File Format
Files: N46E038.hgt
Size is 1201, 1201
Coordinate System is:
GEOGCS["WGS 84",
DATUM["WGS_1984",
SPHEROID["WGS 84",6378137,298.257223563,
AUTHORITY["EPSG","7030"]],
TOWGS84[0,0,0,0,0,0,0],
AUTHORITY["EPSG","6326"]],
PRIMEM["Greenwich",0,
AUTHORITY["EPSG","8901"]],
UNIT["degree",0.0174532925199433,
AUTHORITY["EPSG","9108"]],
AXIS["Lat",NORTH],
AXIS["Long",EAST],
AUTHORITY["EPSG","4326"]]
Origin = (71.999583333333334,1.000416666666667)
Pixel Size = (0.000833333333333,-0.000833333333333)
Corner Coordinates:
Upper Left ( 37.9995833, 47.0004167) ( 37d59'58.50"E, 47d 0'1.50"N)
Lower Left ( 37.9995833, 45.9995833) ( 37d59'58.50"E, 45d59'58.50"N)
Upper Right ( 39.0004167, 47.0004167) ( 39d 0'1.50"E, 47d 0'1.50"N)
Lower Right ( 39.0004167, 45.9995833) ( 39d 0'1.50"E, 45d59'58.50"N)
Center
( 38.5000000, 46.5000000) ( 38d30'0.00"E, 46d30'0.00"N)
Band 1 Block=12011 Type=Int16, ColorInterp=Undefined
NoData Value=-32768
Unit Type: m
Avem un set de date SRTM, format HGT, sistem WGS84, unitate de masura grade, o
singura banda pe 16 biti, rezolutia spatiala de 0.00083 grade per pixel.
gdal_translate
Tool pentru conversie inter-formate raster, cu capabilitati de decupaj dupa extend-ul
specificat de utilizator, fie in pixeli, fie in unitatile proiectiei obiectului raster dat. Un
dezavantaj la acest tool este ca opereaza pe un singur obiect/fisier inputat, lucru logic
daca avem in vedere menirea in sine a utilitarului. Sa-l analizam mai de aproape:
$ gdal_translate
Usage: gdal_translate [help-general]
[-ot {Byte/Int16/UInt16/UInt32/Int32/Float32/Float64 CInt16/CInt32/CFloa
t32/CFloat64}] [-strict]
[-of format] [-b band] [-outsize xsize] ysize[]
[-scale [src_min src_max [dst_min dst_max]]]
[-srcwin xoff yoff xsize ysize] [-projwin ulx uly lrx lry]
[-a_srs srs_def] [-a_ullr ulx uly lrx lry] [-a_nodata value]
[-gcp pixel line easting northing [elevation]]*
[-mo "META-TAG=VALUE"]* [-quiet] [-sds]
[-co "NAME=VALUE"]*
src_dataset dst_dataset
COMPRESSION=LZW
INTERLEAVE=PIXEL
Corner Coordinates:
Upper Left ( 235438.214, 691205.184)
Lower Left ( 235438.214, 652409.357)
Upper Right ( 274817.656, 691205.184)
Lower Right ( 274817.656, 652409.357)
Center
( 255127.935, 671807.271)
Band 1 Block=26991 Type=Byte, ColorInterp=Red
Band 2 Block=26991 Type=Byte, ColorInterp=Green
Band 3 Block=26991 Type=Byte, ColorInterp=Blue
Primul avantaj este declararea clara in obiect a proiectiei: EPSG:31700 (Dealul Piscului
1970). Orice copie a fisierului, data oricui, va fi cu siguranta interpretata corect de catre
orice aplicatie GIS compatibila EPSG. Pentru mai multe detalii referitoare la proiectiile
incluse in baza de date EPSG va invitam sa sa consultati http://www.spatialreference.org,
un motor web ce permite cautare prin baza de date, fiind extrem de util pentru clarificarea
codului si denumirii unui anumit sistem de coordonate.
Sa vedem putin mai departe diferenta de marime in obiectul rezultat:
$ ls -lh RGB321-L-34-020.tif L-34-020.TIF
+ 1 cbalint
None 17M Jan 30 16:21 L-34-020.TIF
rwx-+ 1 Administrators None 22M Aug 25 19:59 RGB321-L-34-020.tif
Am comprimat obiectul raster folosind algoritmul LZW (zip) si am castigat 5Mb spatiu
de stocare, fara sa alteram vreun pixel, LZW fiind o compresie fara pierdere de calitate
(lossless).
Alternativ, am fi putut folosi compresia DEFLATE sau chiar JPEG. Sa vedem ce obtinem
cu DEFLATE (o varianta zip mai agresiva):
$ gdal_translate-a_srs EPSG:31700 RGB321-L-34-020.tif -co compres
s=deflate -co zlevel=9 -of GTiff L-34-020.TIF
$ ls -lh RGB321-L-34-020.tif L-34-020.TIF
+ 1 cbalint
None 15M Jan 30 16:25 L-34-020.TIF
rwx-+ 1 Administrators None 22M Aug 25 19:59 RGB321-L-34-020.tif
De data aceasta castigul este de 7Mb, ceea ce este semnificativ, avand in vedere ca am
putea avea sute de rasteri de acest gen, sau poate cateva mii. Problema este ca DEFLATE,
in comparatie cu LZW, nu este interpretat si acceptat de toate aplicatiile GIS existente.
Atentie deci la conversii, GDAL poate face multe minuni dar nu este garantata
interoperabilitatea cu alte aplicatii, in speta cu cele proprietare. De aceea este bine de
realizat un test prealabil, care sa asigure utilizatorul ca formatul produs este in regula si
satisfacator pentru stocare si manipulare. Pentru a vedea mai multi parametri acceptati de
driverul GeoTiff, sau alte posibile drivere de iesire, puteti apela manualul inclus sau cel
online (ex.: pt geotiff, http://www.gdal.org/frmt_gtiff.html), unde se mentioneza pentru
fiecare format compresile acceptate. Pentru GeoTiff mai remarcam CCIT, o compresie
Corner Coordinates:
Upper Left (
0.0,
0.0)
Lower Left (
0.0, 5139.0)
Upper Right ( 3729.0,
0.0)
Lower Right ( 3729.0, 5139.0)
Center
( 1864.5, 2569.5)
Band 1 Block=37291 Type=Byte, ColorInterp=Red
Band 2 Block=37291 Type=Byte, ColorInterp=Green
Band 3 Block=37291 Type=Byte, ColorInterp=Blue
Remarcam ca acest obiect nu contine un sistem de coordonate sau unitate de masura dar
contine punctele de control inserate pentru fiecare punct arondat unei valoari in
coordonate geografice. GeoTiff-ul a fost comprimat LZW pentru economie de spatiu.
Vom incerca sa asignam si un sistem de coordonate. Pentru aceasta ne vom uitam la
motorul EPSG online. Aici am gasit un echivalent pentru sistemul austro-ungar, denumit
Ferro si avand codul EPSG:4805: http://www.spatialreference.org/ref/epsg/4805/. Data
fiind lipsa detaliilor asupra plansei este destul de greu sa apreciem daca sistemul
identificat este cel mai bun posibil, dar cu siguranta pentru exemplul nostru este suficient.
$ gdal_translate p_39_47_100.jpg -gcp 338 85 38.5 47.5 -gcp 3620 220 39.
5 47.5 -gcp 3442 5061 39.5 46.5 -gcp 98 4912 38.5 46.5 -of GTiff -co com
press=lzw -a_srs EPSG:4805 p_39_47_100.TIF
Input file size is 3729, 5139
0102030405060708090100 done.
$ gdalinfo p_39_47_100.TIF
Driver: GTiff/GeoTIFF
Files: p_39_47_100.TIF
Size is 3729, 5139
Coordinate System is `
GCP Projection = GEOGCS[MGI (Ferro),DATUM[unknown,SPHEROID[unretrie
vable using WGS84,6378137,298.257223563]],PRIMEM[Greenwich,0],UNIT[
degree,0.0174532925199433],AUTHORITY[EPSG,4805]]
GCP[ 0]: Id=1, Info=(338,85) -> (38.5,47.5,0)
GCP[ 1]: Id=2, Info=(3620,220) -> (39.5,47.5,0)
GCP[ 2]: Id=3, Info=(3442,5061) -> (39.5,46.5,0)
GCP[ 3]: Id=4, Info=(98,4912) -> (38.5,46.5,0)
Metadata:
AREA_OR_POINT=Area
Image Structure Metadata:
COMPRESSION=LZW
INTERLEAVE=PIXEL
Corner Coordinates:
Upper Left (
0.0,
0.0)
Lower Left (
0.0, 5139.0)
Upper Right ( 3729.0,
0.0)
Lower Right ( 3729.0, 5139.0)
Center
( 1864.5, 2569.5)
Band 1 Block=37291 Type=Byte, ColorInterp=Red
Band 2 Block=37291 Type=Byte, ColorInterp=Green
Band 3 Block=37291 Type=Byte, ColorInterp=Blue
De aceasta data remarcam ca avem inclusa atat proiectia cat si punctele de control, in
concluzie avem un obiect raster integru si transferabil oricui fara prea multe note de
explicatii asupra fisierului. Cine este curios poate citi inapoi, utilizand gdalinfo,
modalitatea in care el a fost georeferentiat si punctele de control utilizate.
Observatie
Nu toate aplicatiile GIS accepta puncte de control, atentie deci la aceasta modalitate de a
stoca obiecte spatiale raster. Partea buna la aceasta metoda de inserare a punctelor de
control este ca se obtine un singur fisier, in starea nativa si nealterata a imaginii, fara se
deformeaze pixelii, la care se adauga in header informatiile spatiale sub forma unor
puncte, lasand mai departe la latitudinea utilizatorilor de a-si alege algoritmul preferat si
suita GIS preferata de a aduce/exporta rasterul la forma geo-referentiata finala.
gdalwarp
Utilitar pentru reproiectia datelor spatiale. Sa facem cunostinta mai indeaproape cu
capabilitatile acestui utilitar:
$ gdalwarp
Usage: gdalwarp [help-general] [formats]
[-s_srs srs_def] [-t_srs srs_def] [-order n] ] [-tps] [-et err_threshold
]
[-te xmin ymin xmax ymax] [-tr xres yres] [-ts width height]
[-wo NAME=VALUE] [-ot Byte/Int16/...] [-wt Byte/Int16]
[-srcnodata value [value]] [-dstnodata value [value]] -dstalpha
[-r resampling_method] [-wm memory_in_mb] [-multi] [-q]
[-of format] [-co NAME=VALUE]* srcfile* dstfile
Available resampling methods: near (default), bilinear, cubic, cubicspli
ne, lanczos.
Mai departe vom reproiecta si plansa din sistemul Ferro, cu puncte de control GCP,
generata de noi la sectiunea gdal_translate, folosind algoritmul lanczos pentru
resampling si proiectia Stereo70. Deoarece avem de aface cu puncte de control in plansa
noastra vom lasa la latitudinea gdalwarp sa aleaga gradul trasformarii affine, de
asociere a pixelilor pe domeniu spatial. Cel mai probabil GDAL va alege gradul 1, pentru
transformarea affine cu 4 puncte de control, atatea cate am declarat anterior, pe care o va
reproduce impecabil, iar calitatea pixelilor adiacenti si propagarea culorilor spre
invecinatati (resampling-ul) va fi una net superioara datorita metodei lanczos alese la reesantionare pe matricea de pixeli. Din pacate, in acest exemplu, calitatea originala a
plansei este relativ slaba, ceea ce micsoreaza sansele de a observa efectelele exacte ale
sampler-ului lanczos.
$ gdalwarp -t_srs EPSG:31700 p_39_47_100.TIF -r lanczos -of GTiff -co co
mpress=LZW p_39_47_100-st70.TIF
Creating output file that is 4380P x 5596L.
Processing input file p_39_47_100.TIF.
0102030405060708090100 done.
Procesul dureaza ceva mai mult datorita sampler-ului lanczos, de inalta calitate,
recomandat in special pentru aerofotograme de mare rezolutie, format RGB pe 24 biti.
Plansa rezultata, in proiectie Stereo70, este prezentata in Figura 1.
Inca de la prima vedere se pot ramarca unele inconveniente. Este vorba de cele trei
chenare in surplus, unul negru, al doilea alb, plus chenarul inutil al plansei insasi, unde
apar gradatiile. Chenarul negru apare in urma trasformarii in Stereo70. Asta deoarece
rasterul are forma unei fereastre rectangulare, ne-existand fisiere raster cu forma
iregulata. Chenarul alb apare din urma scanarii plansei. Ambele pot constitui un obstacol
atunci se ridica problema alipirii cu o plansa adiacenta. Ultimul exemplu isi propune, in
patru pasi, sa combata elegant aceste neajunsuri cu ajutorul gdal_translate si
gdalwarp.
georeferentiere imagine
$ gdal_translate p_39_47_100.jpg -gcp 338 85 38.5 47.5 -gcp 3620 220 39.
5 47.5 -gcp 3442 5061 39.5 46.5 -gcp 98 4912 38.5 46.5 -of GTiff -co com
press=lzw -a_srs EPSG:4805 p_39_47_100.TIF
Input file size is 3729, 5139
0102030405060708090100 done.
p_39_47_100-
reproiectare in Stereo70
Verificam rezultatul:
$ gdalinfo.exe p_39_47_100-st70-noborder.TIF
Driver: GTiff/GeoTIFF
Files: p_39_47_100-st70-noborder.TIF
p_39_47_100-st70-noborder.aux
p_39_47_100-st70-noborder.rrd
Size is 4006, 5208
Coordinate System is:
PROJCS[unnamed,
GEOGCS[Dealul Piscului 1970,
DATUM[unknown,
SPHEROID[unretrievable using WGS84,6378137,298.257223563]],
PRIMEM[Greenwich,0],
UNIT[degree,0.0174532925199433]],
UNIT[metre,1,
AUTHORITY[EPSG,9001]],
AUTHORITY[EPSG,31700]]
Origin = (1514274.239675097900000,767631.323753058790000)
Pixel Size = (23.757760795673267,-23.757760795673267)
Metadata:
AREA_OR_POINT=Area
Image Structure Metadata:
COMPRESSION=LZW
INTERLEAVE=PIXEL
Corner Coordinates:
Observam sintagma NoData Value=0 pe cele 3 benzi RGB, asta inseamna ca orice soft
GIS va interpreta valoarea 0 a culorii ca fiind transparenta, cel putin in aplicatiile ESRI si
ERDAS functioneaza, rasterul fiind corect afisat (Figura 2). Este mai comod sa atribuim
valoarea NoData in headerul rasterului, decat sa definim o a patra banda pe langa RGB si
s-o declaram transparenta, lucru ce se va simti in spatiul de stocare necesar, fisierul
crescand in marime datorita benzii alpha suplimentare.
Disclaimer
Acest articol este lipsit de orice drept de proprietate intelectuala restrictiva publicului,
este declarat cu drepturi depline de uz public, iar unele materiale prezentate se supun
drepturilor de autor specificate pe site-ul de provenienta http://earth.unibuc.ro. Suita
GDAL este sub licenta Public Domain compatibila cu acest articol, iar marcile
inregistrate Leica, ESRI, ERDAS, GlobbalMapper, Microsoft, Google se pot supune unor
legi prin simpla folosire a denumirii, in aceasta privinta autorul articolului declara ca nu
este afiliat sub nici un fel acestor marci, ele fiind amintite si utilizate ca denumire in scop
pur documentativ si exemplificatoriu.