Proj4

Transformacija koordinata pomoću proj.4 modula

Vrlo često dobijem upit kako konvertirati neku koordinatu iz Hrvatskog koordinatnog sustava u WGS84 (GPS) ili obrnuto. Većina CAD i GIS softvera dolazi da svojom bazom svjetskih koordinatnih sustava i često među njima je i Hrvatska. Iako ljudi koriste te predefinirane koordinate sustave, često oni nisu dobro podešeni i dobiveni rezultati budu krvi. Potaknut tim problemom, napisan je kratki vodič u transformaciju koordinata pomoću proj.4 modula. Kao softver za transformaciju korišten je mali program cs2cs.exe koji dolazi s proj.4 bibliotekom.
Iako je od ove godine u Hrvatskoj na snazi novi koordinati sustav, još uvijek velika većina (čitaj: svi podaci) podataka se nalaze u starom koordinatnom sustavu. U ovom kratkom vodiču sam pokušao na što jednostavniji način objasniti vezu između koordinatnih sustava, datuma i projekcija te postavio primjere kako transformirati koordinate iz jednog sustava u drugi. Kroz sljedeći kratki vodič će biti prikazano kako transformirati cijelu datoteku pomoću proj.4 i OGR modula, a ne samo koordinatu po koordinatu.

Link na kratki vodič.

Tri funkcionalna zahtjeva GIS-a

Priprema radionice za DORS/CLUC 2010, ali i zadnji post, u kojem se pisalo o PROJ4 biblioteci, podsjetio me je da većina ljudi od GIS-a zastane pred pitanjem: "Što je pored standardne okoline potrebno da bi bi sustav bio geografski (GIS), tj. da bi nam omogućio podršku za prostorne analize?". Većina ljudi počnu nabrajati razne vlasničke software-e i alate. I stvarno, stiskanje next tipke i klikanje po gumbima na korisničkom sučelju može biti GIS, ali na taj način nećemo saznati što se zapravo događa u pozadini i što se sve treba odraditi da bi se na bilo koji način procesirali prostorni podaci.

Tri su zahtjeva. Prvi zahtjev je driver za rasterske/vektorske GIS formate podataka tj. mogućnost da se pristupi raznim rasterskim/vektorskim zapisima prostornih podataka (a ima ih jako puno). Vrlo često su ti formati vlasnički i specifikacije ako su napisane onda su napisane vrlo oskudno i loše. Ima i izuzetaka. Vlasnički SHP (shapefile) format je primjer da i ne mora biti tako. U FLOSS GIS svijetu taj zahtjevan posao odradio je Frank Warmerdam i još 1994 počeo raditi na GDAL/OGR biblioteci koja nam rješava sve probleme u svezi sa prvim zahtjevom (i mnogo više). Frank 1998 objavljuje GDAL pod slobodnom licencom i GDAL/OGR postaje jedna od najkorisnijih biblioteka FLOSS GIS svijeta sa krasnim SWIG bindinzima za C/C++. C# .NET, Javu, Python, Perl, Ruby i R. Frank je legenda i zaslužio je cijelu temu.

OK, sad kad čitamo podatke dolazimo do problema kako ih smjestiti u prostor. Kako koordinate staviti u odnose i to prostorne odnose koje su opisane vrlo kompleksnom matematikom teorije projekcija?

Proj4 svoje početke vuče još iz kasnih 70', a USGS ga objavljuje pod slobodnom licencom još 1983 i on je zaslužan što je FLOSS GIS svijet dobio još jednu punokrvnu biblioteku koja omogućava i drugu funkcionalnost u ovoj priči. Ovaj vrlo ozbiljan programerski posao odradio je nesebični USGS i tako je svijet transformacija, geografskih datuma, čudnih projekcijskih parametara i konstanti, geografskih koordinatnih sustava i nerazumljivih matematičkih funkcija napokon dobio svoj izraz u binarnom svijetu.

Sad kad možemo pročitati podatke i smjestit ih u prostor, vrlo jednostavno uz pomoć nekog od renderera možemo napraviti sliku (koju već možemo nazvati kartom), a koja će prikazati objekte u prostoru i realno prikazati prostorne odnose među njima. No nikako ne želimo samo to, a kako bi zadovoljili ono IS u GIS moramo uvesti bar malo analitičke geometrije. Drugim riječima podatke želimo analizirati, mjeriti udaljenosti između objekata, saznati koliko se nekih objekata nalazi unutar nekog područja, tj. netko ili nešto treba omogućiti logiku operacija nad skupovima i omogućiti osnovne topološke analize.

Taj zahtjev ispunjava GEOS, koji omogućuje objektni model za Euklidovu geometriju te implementira i geometrijski model i API-je definirane u OGC Simple Features Specification for SQL standardu. Objavljivanje JTS-a 2000 god. pod slobodnom licencom otvorio je put da FLOSS GIS stack dobije GEOS, svoj C port ove izuzetno važne biblioteke koja djelujući u pozadini zadovoljava i treći uvijet ove kratke priče. GEOS omogućava manipulaciju 2-dimenzionalnom linearnom geometrijom, krasan je resurs velikog broja geometrijskih funkcija i algoritama.  Bez njega je i PostGIS vrlo rudimentaran.

Dakle gledajući FLOSS GIS C/C++ stack, GEOS, Proj4 i GDAL su osnovni funkcionalni elementi jednog informacijskog sustava koji sada sebe ima puno pravo zvati geografskim. I to je stvarno najosnovnije.

PROJ4J i GeoMajas

Zadnjih mjesec dana ništa se senzacionalno nije dogodilo u FLOSS GIS svijetu, ali izdvojit ću par donekle zanimljivih događaja.

Prvi zanimljiv događaj je novi projekt Proj4J (Apache License, Version 2.0), Java port Proj4 biblioteke koja je nedostajala Java FLOSS GIS stack-u. Zapravo ništa novo i ne nužno potrebno FLOSS GIS svijetu a autor Martin Davis na pitanje zašto još jedan port Proj4 biblioteke odgovara kako mu se to ucinilo cool (iz moje prespektive potpuno legitimno). Naime Java stack je do sada koristio origanalnu Proj4 (C) biblioteku, doduše sa JNI bindinzima.

Inače za one koji ne znaju Proj4 (MIT Licence) je jedna od prvih GIS biblioteka objavljenih pod nekom od slobodnih licenci još 1983 godine i kako je onaj "matematički dio" teorije projekcija prebačen u sasvim solidan komad software-a koji omogućava reprojekcije i "razumijevanje realnog prostora" u digitalnom obliku tako je i otvoren put za daljnji razvoj FLOSS GIS svijeta. Dosadašnji portovi su: Proj4js - JavaScript port zgodan jer se vrti na klijentu i omogućava reprojekciju vektora i prikaz koordinata u raznim projekcijama u realnom vremenu i CS-Map - C# port za .NET stack. Svi su "prigrljeni" pod zajedničkim projektom MetaCRS pod pokroviteljstvom OSGEO fondacije.

GeoMajas je još jedan proizvod iz Java svijeta koji ušao u OSGEO Inkubator. Nisam ga isprobao pa neću pisati o funkcionalnostima, ali čini se kao jako moderan i zanimljiv framework za razvoj WEB GIS aplikacija.

Od ostalih zanimljivosti izdvojio bih novi 1.7.0 release GDAL/OGR biblioteke i proširenje OpenGeo Suite paketa FLOSS GIS alata, a za zabavu pogledajte predavanje o budućnosti interneta i slobodnih podataka koje je odrzao Tim Barners-Lee na zadnjoj TED konferenciji.

Udruženi sadržaj