23. prosinca 2012.

Transformacija koordinata pomoću NTv2 datoteke i PROJ.4 biblioteke


Transformacija koordinata pomoću grid datoteke tj. GRID transformacija podržana je i u PROJ.4 biblioteci kartografskih projekcija. Za transformaciju se koristi program cs2cs koji dolazi uz PROJ.4 biblioteku, a pokreće se iz naredbenog retka. PROJ.4 biblioteka je projekt OSGeo zajednice (Open Source Geospatial Foundation) i koristi su uglavnom u svim njihovim projektima kao što su Quantum GIS, GRASS GIS,  PostGIS itd.

Najprije je potrebno grid datoteku HRNTv2.gsb kopirati u direktorij u kojem se nalazi cs2cs program i proj.4 biblioteka. Naredba koja se upisuje u naredbeni redak idu otprilike ovako:
Ime naredbe :
cs2cs

Definicija sustava iz kojeg transformiramo ( HTRS96 ):
+proj=tmerc +lat_0=0 +lon_0=16.5 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +towgs84=0,0,0,0,0,0,0

Definicija sustava u kojeg transformiramo ( HDKS 5.zona):
+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=5500000 +y_0=0 +ellps=bessel +nadgrids=./HRNTv2.gsb +units=m

Naredbom +to odvajamo definiciju jednog i drugog sustava.

Transformacija iz HTRS96 sustava u HDKS sustav

Na kraju kompletna naredba za transformaciju iz HTRS96 sustava u HDKS sustav glasi:

cs2cs +proj=tmerc +lat_0=0 +lon_0=16.5 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +towgs84=0,0,0,0,0,0,0 +to +proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=5500000 +y_0=0 +ellps=bessel +nadgrids=./HRNTv2.gsb +units=m

Sljedeća slika prikazuje transformaciju iz starog HDKS sustava u novi HTRS96 sustav.

Transformacija iz HDKS  sustava u HTRS96 sustav

Naredba za transformaciju iz HDKS sustava u HTRS96 sustav glasi:

cs2cs +proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=5500000 +y_0=0 +ellps=bessel +nadgrids=./HRNTv2.gsb +units=m +to +proj=tmerc +lat_0=0 +lon_0=16.5 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +towgs84=0,0,0,0,0,0,0

Sigurno ste primijetili da u gornjim definicijama nema parametara transformacije na koje smo uglavnom navikli kada transformiramo koordinate iz jednog sustava u drugi. Pošto se ovdje radi o GRID transformaciji koja je objašnjena u jednom od ranijih postova, potrebno je naglasiti kako je transformacija uspješna samo unutar područja obuhvata grid datoteke.
Za programere je bitno naglasiti da se PROJ.4 biblioteci može pristupiti i preko API sučelja tako da se PROJ.4 biblioteka može koristiti prilikom programiranja vlastitih aplikacija.

22. prosinca 2012.

Sinjal, ali i geosinjal


Prema „Rječniku stranih riječi“ Bratoljuba Klaića sinjal je isto što i signal:

sinjal, v. signal

signal lat. (signum - obilježje, znak)
svjetlosni ili zvučni, zastavni ili optički znak
određenog značenja, znamenje, upozorenje,
poziv na djelatnost, na opreznost

Kao ideju za naslov ovog posta sam iskoristio jedan od naslova iz rasprave o imenu najvišeg hrvatskog planinskoga vrha koja se vodila u časopisu Hrvatski planinar, a koji glasi "Dinara, ali i Sinjal". Naime kao što mnogi znaju Sinjal (1831 m) je ime koje koriste stanovnici Kijeva kada govore o najvišem vrhu u Hrvatskoj, koji se nalazi na planini Dinari i koji je na kartama uglavnom označen imenom Dinara. Nepraktičnost imena Dinara proizlazi iz činjenice što i planina i najviši vrh nose isto ime. Da stvar bude još kompliciranija Dinara je najviši vrh samo dijela planine koji se nalazi u Republici Hrvatskoj. U slučaju kada bi trebali reći da idemo na Sinjal trebali bi koristiti složenicu „ najviši vrh hrvatskog dijela Dinare“, u suprotnom ako kažemo  „idemo na Dinaru“ to može značiti i da idemo na bilo koji vrh ili dio planine Dinare. Iako nepraktičan kao naziv najvišeg hrvatskog vrha, naziv Dinara se nalazi na svim kartama i dokumentima. Iskreno meni je puno bolji naziv Sinjal i zato me raduje da se na novoj topografskoj karti 1: 25000 (TK25) - DINARA (ZAPAD)  iz 2006. godine koristi uz naziv Dinara i naziv Sinjal.


Ime Sinjal prema reagiranju članova HPD „Sinjal 1831“ iz Kijeva nije nastalo zbog trigonometrijske točke prvog reda koja se nalazi na vrhu, već zbog komunikacije pastira koji su ljeti obitavali sa stokom na ispaši u vršnim dijelovima planine s obiteljima u Kijevu. Komunikacija se odvijala unaprijed dogovorenim signalima ili sinjalima najčešće odsjajem ogledala na suncu sa vrha planine tj. sa Sinjala.

17. prosinca 2012.

Transformacija podataka iz Gauss Krugerove projekcije u koordinatni sustav HTRS96/TM u Quantum GIS (QGIS) softveru


U sljedećim postovima ću pokušati dati neka kratka uputstva, ideje i savjete za korištenje NTv2 datoteke. Jedan od prvih programa s kojim sam isprobao NTv2 datoteku je Quantum GIS koji je jedan od projekata OSGeo (Open Source Geospatial Foundation) zajednice. Slijede uputstva za korištenje NTv2 datoteke u QGIS softveru.

Kopirati  HRNTv2.gsb datoteku iz prethodnog posta u direktorij
C:\Program Files\Quantum GIS Lisboa\share\proj
Instalirati dodatak Transformation Tools:
Dodaci – Dohvati Python dodatke


Selektirati Transformation Tools i kliknuti Instaliraj dodatak


Nakon instalacije dodatka kliknuti na:
Dodaci – Transformation Tools – Transformation  Manager


Klikom na New otvara se prozor za definiranje parametara transformacije.


Prvo definiramo transformaciju iz  5. zone Gauss Krugerove projekcije u HTRS96.

Transformation name:  HDKS_5 <> HTRS96
System from:

+proj=tmerc +pm=greenwich +lat_0=0 +lon_0=15 +k=0.9999 +x_0=5500000 +y_0=0 +ellps=bessel +towgs84=550.499,164.116,475.142,5.80967,2.07902,-11.62386,0.99999445824 +units=m

System to: 
Kliknemo na      zatim odaberemo


Projicirani koordinatni sustavi – Transverse Mercator – HTRS96 / Croatia TM


Grid or params :
Izaberemo grid i sa   pronađemo HRNTv2.gsb datoteku.

Nakon toga upišemo imena.

CRS A name: HDKS_5
CRS B name: HTRS96

Nakon definiranja 5. zone, na isti način definiramo i 6. zonu.

Transformation name:  HDKS_6 <> HTRS96
System from:

+proj=tmerc +pm=greenwich +lat_0=0 +lon_0=18 +k=0.9999 +x_0=6500000 +y_0=0 +ellps=bessel +towgs84=550.499,164.116,475.142,5.80967,2.07902,-11.62386,0.99999445824 +units=m

System to:
Kliknemo na   zatim odaberemo

Projicirani koordinatni sustavi – Transverse Mercator – HTRS96 / Croatia TM

CRS A name: HDKS_6
CRS B name: HTRS96

Podaci se transformiraju klikom na:

Dodaci – Transformation Tools – Transformation  Manager ili na ikonu .



Selektiramo transformaciju koju izvodimo iz 5. ili 6. zone i kliknemo na
Apply CRS A -> CRS B ( direct)  ili  Apply CRS A <- CRS B ( inverse) za transformaciju iz HTRS96 u sustav Gauss – Krugerove projekcije.

14. prosinca 2012.

Kreiranje NTv2 grid datoteke za transformaciju između HDKS i HTRS96 sustava


Kao što je spomenuto u prethodnom postu NTv2 format grid datoteke koristi se u velikom broju državama kao što su Kanada, Australija, Novi Zeland, Velika Britanija, Švicarska, Njemačka, Brazil, Francuska itd. NTv2 format je razvijen u Kanadi, zatim je prihvaćen i prilagođen u Australiji, a nakon toga u ostalim državama.


Grid polja različitih intervala

NTv2 format grid datoteke može sadržavati različita grid polja ( sub-grid ), tj gridove s različitim razmacima (intervalima) između točaka grida. Također se može po potrebi nadopunjavati s novim grid poljima. NTv2 datoteka može biti u ASCII i u binarnom formatu.
Treba napomenuti da NTv2 datoteka služi za 2D transformaciju, tj za transformaciju geodetske dužine i geodetske širine iz jednog sustava u drugi. NTv2 format grid datoteke je možda najbolje dokumentiran u Australiji gdje su razvijeni programi GDAit  i GDAy  koji služe za transformaciju između starog Australian Geodetic Datum (AGD) i novog Geocentric Datum of Australia (GDA) australskog datuma, a koriste NTv2 format grid datoteke za transformaciju. Nešto više o NTv2 formatu možete pronaći u GDAitUsers Guide  i GDAyUsers Guide . NTv2 datoteka se sastoji od zaglavlja i redova u kojima se nalaze vrijednosti korekcija za geodetsku dužinu i geodetsku širinu u svim točkama grida. U točkama grida tj. u korekcijama je modelirana distorzija.

Zaglavlje NTv2 datoteke:

NUM_OREC 11
NUM_SREC 11
NUM_FILE  1
GS_TYPE SECONDS
VERSION NTv2.0 
DATUM_F HDKS 
DATUM_T HTRS96
MAJOR_F  6377397.155
MINOR_F  6356078.963
MAJOR_T  6378137.0
MINOR_T  6356752.3141
SUB_NAME HRGRID
PARENT  NONE   
CREATED 12-10-15
UPDATED 12-10-15
S_LAT     151200.000000
N_LAT     167760.000000
E_LONG    -70200.000000
W_LONG    -46800.000000
LAT_INC       60.000000
LONG_INC      90.000000
GS_COUNT 72297

Dio NTv2 datoteke:

  0.801326 18.827497  0.000000  0.000000
  0.798218 18.816583  0.000000  0.000000
  0.795113 18.805667  0.000000  0.000000
  0.792010 18.794749  0.000000  0.000000
  0.788909 18.783831  0.000000  0.000000

gdje je u prvom redu korekcija geodetske širine, zatim korekcija geodetske dužine i točnost geodetske širine i dužine za prvu točku grida. Podaci o području obuhvata grida, intervalu unutar točaka grida, kao i o korištenim elipsoidima nalaze se u zaglavlju datoteke.



Grafički prikaz grid polja

Na slici je grafički prikaz grid polja gdje je  n = broj kolona   i   m = broj redova
Za dohvat podataka grida za traženu točku P koriste se sljedeće formule:

n = int(W-E / dLon)+1   
m = int(N-S / dLat)+1
i = int(LatP - S / dLat) + 1
j = int(LonP - E / dLon) + 1
A = n * (i - 1) + j
B = A + 1
C = A + n
D = C + 1

Nakon dohvata podataka koristi se metoda bilinearne interpolacije za računanje parametara transformacije tražene točke.

Za potrebe transformacije iz HDKS sustava u HTRS96 sustav i obratno kreirao sam NTv2 grid datoteku za područje Hrvatske. Vrijednosti  korekcija tj. parametara transformacije u točkama grida su izračunate programom T7D za područje od 42° do 46,6°  u smjeru jug - sjever s korakom od 60" i od 19,5° do  do 13 u smjeru istok - zapad s korakom od 90".


Područje obuhvata kreirane NTv2 datoteke

Datoteka s vrijednostima geodetske širine i geodetske dužine u HDKS sustavu za sve točke grida je kreirana programski (VB6). Nakon toga su izračunate vrijednosti tih koordinata u sustavu HTRS96 programom T7D u kojem je ugrađen model distorzije. Tako je dobiven drugi set koordinata ( geodetska širina i dužina ) za sve točke grida u HTRS96 sustavu. Razlike tih koordinata su ugrađene u NTv2 datoteku nakon kreiranog zaglavlja također programski. Time je kreirana NTV2 datoteka u ASCII formatu.
Linkovi za skidanje NTv2 datoteka u ASCII i binarnom formatu:

HRNTv2.gsb – binarna NTv2 datoteka - http://www.mediafire.com/?76kkkqpmhy2d75s
HRNTv2 .asc – ASCII NTv2 datoteka  - http://www.mediafire.com/?m7p4foehw4d6qcv

GRID transformacija


GRID transformacija je metoda transformacije koordinata, gdje se parametri transformacije
za traženu točku računaju iz vrijednosti parametara transformacije okolnih točaka GRID-a.
GRID transformacija koristi distorziju koja je modelirana u točkama grida i sadržana je u  parametrima transformacije za geodetsku širinu (φ) i duljinu (λ). GRID transformacija se zbog jednostavnosti i točnosti koristi u velikom broju država.


GRID transformacija

Najpoznatniji standardni format grid datoteke je NTv2 format koji se koristi u mnogim komercijalnim i besplatnim programima za transformaciju kao što su ArcGIS, Quantum GIS, GlobalMapper, Trasnsdat, FME  itd. Vrijednosti parametara transformacije tražene točke se računaju metodom bilinearne interpolacije po formulama:

δφ= a0 + a1X + a2Y + a3XY                  
δλ= b0 + b1X + b2Y + b3XY

gdje su:

a0 = δφ1
a1 = δφ2 – δφ1
a2 = δφ4 – δφ1
a2 = δφ1 + δφ3 – δφ–  δφ4
b0 = δλ1
b1 = δλ2 – δλ1
b2 = δλ4 – δλ1
b2 = δλ1 + δλ3 – δλ–  δλ4
X = (λP –  λ1) / (λ2 –  λ1)
Y = (φP – φ1) / (φ4 –  φ1)

φP, λ- geodetske koordinate točke P
δφp, δλp  - interpolirane vrijednosti korekcija u točki P
δφ1, δφ2, δφ3, δφ4, δλ1, δλ2, δλ3, δλ4 - vrijednosti korekcija u najbližim točkama grida

U Hrvatskoj se GRID transformacija koristi u programu T7D koji je službeni program za transformaciju podataka državne izmjere, kartografskih i katastarskih podloga između postojećih i službenih referentnih sustava. T7D jedinstveni transformacijski model se sastoji od 7-parametarske Helmertove transformacije i modeliranih distorzija popravaka u obliku grida.