GEOS

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.

Udruženi sadržaj