I. Software GIS open-source, o alternativă completă la soluţiile proprietare. Introducere, librării şi toolkit-uri de dezvoltare
de Vasile Crăciunescu
Publicat la 06 Jan 2007 | Secţiunea: Articole | Categoria: GIS/Generalitaţi
Conceptul de open source
Conceptul de software liber/free nu este deloc unul nou. Imediat după apariţie, calculatoarele au fost adoptate de universităţi ca unelte de cercetare. La acel moment aplicaţiile software erau distribuite liber, programatorii fiind plătiţi doar pentru timpul de programare şi nu pentru aplicaţiile software realizate. Ceva mai tîrziu calculatoarele au ajuns în mediul de afaceri iar programatorii au început să se întreţină restricţionînd drepturile utilizatorilor asupra aplicaţiilor software şi percepînd taxe pentru fiecare copie a programului. Conceptul de software liber, ca filosofie de dezvoltare a aplicaţiilor, a fost puternic popularizat începînd cu anul 1984 de către Richard Stallman, o dată cu înfiinţarea Free Software Foundation şi demararea proiectului GNU. În viziunea Free Software Foundation (FSF), software-ul liber este caracterizat de libertate şi nu de preţ. Conceptul se referă la libertate în sensul de libertatea de expresie şi nu în sensul de intrare liberă. Confuzia între cele două sensuri este des întîlnită deoarece în engleză, cuvîntul free, semnifică atît libertate cît şi gratis. Software-ul liber e caracterizat de libertatea acordată utilizatorilor săi de a-l utiliza, copia, distribui, studia, modifica şi îmbunătăţi. Mai exact, e vorba de patru forme de libertate a utilizatorilor săi:
- Libertatea de a utiliza programul, în orice scop (libertatea 0).
- Libertatea de a studia modul de funcţionare a programului, şi de a-l adapta nevoilor proprii (libertatea 1). Accesul la codul-sursă este o precondiţie pentru aceasta.
- Libertatea de a redistribui copii, în scopul ajutorării aproapelui tău (libertatea 2).
- Libertatea de a îmbunătăţi programul, şi de a pune îmbunătăţirile la dispoziţia publicului, în folosul întregii societăţi (libertatea 3). Accesul la codul-sursă este o precondiţie pentru aceasta.

Sigla proiectului GNU
În 1998, Eric S. Raymond, Bruce Perens şi Linus Torvalds lansează conceptul open source software, ca alternativă la formula free software. În acest fel se urmăreşte atît eliminarea ambiguităţii induse de forma free cît şi debarasarea de aspectele rigide promovate de FSF. Mişcarea s-a dovedit una cîştigătoare, curentul open source cunoscînd de atunci o dezvoltare exponenţială.
Succesul unui proiect open source nu este asigurat prin simpla publicare a codului sursă. Acesta apare atunci cînd în jurul proiectului se conturează o comunitate activă de dezvoltatori şi utilizatori, uniţi de interese comune, care susţin şi îmbunătăţesc constant proiectul. Pentru a atrage o comunitate puternică, un proiect open source trebuie să respecte o serie de reguli de design, transparenţă şi deschidere. Cele mai importante ar fi:
- Documentarea cît mai bună a aplicaţiei software, atît la nivel de utilizator cît şi la nivel de dezvoltator. Acest lucru va minimiza timpul şi efortul investit de un utilizator/dezvoltator nou pentru a se obişnui cu aplicaţia şi va maximiza productivitatea acestuia.
- Proiectarea şi implementarea aplicaţiei să fie făcută într-o manieră transparentă. Aceasta presupune în primul rînd disponibilitatea codului via CVS, dar şi existenţa unor liste de discuţii publice, unde să fie puse în discuţie strategiile de dezvoltare, planurile de viitor etc.
- Echipa de dezvoltare a proiectului trebuie să fie de asemenea transparentă. Importanţă unui dezvoltator trebuie să fie dată de calitatea şi cantitatea contribuţiilor la proiect şi nu de funcţia deţinută în cadrul unei instituţii sau companii.
- Designul aplicaţiei trebuie să fie unul modular. Acest lucru permite dezvoltatorilor adăugarea la aplicaţia principală a unor module cu funcţionalitate specifică. Deşi utilitatea unui modul poate să nu intereseze întreaga comunitate din jurul proiectului, ea va adăuga valoare aplicaţiei şi va permite atragerea de noi utilizatori.
Succesul aplicaţiilor open source a cunoscut o nouă fază o dată cu apariţia unor noi modele de bussiness care să exploateze şi în plan comercial funcţionalitatea acestora. Drept dovadă, în momentul de faţă, foarte multe din aplicaţiile open source nu mai reprezintă doar rezultatul muncii unor programatori entuziaşti, ci beneficiază de un suport substanţial din partea marilor companiilor private (Ex: IBM, HP, SUN etc). Conceptul open source garantează clientului controlul deplin asupra tehnologiei pe care o utilizează şi asigură diminuarea costurilor prin eliminarea cheltuielilor presupuse de achiziţia aplicaţiilor. În acelaşi timp, dezvoltatorul unui proiect open source poate controla modul în care aplicaţia sa este utilizată comercial prin atribuirea unei licenţe de utilizare. În prezent există o multitudine de asemenea licenţe, adaptate diverselor nevoi ale utilizatorilor şi un organism ce are rolul de a centraliza, documenta şi arbitra corectitudinea textului acestor licenţe: Open Source Initiative.
Printre cele mai cunoscute şi utilizate proiecte open source se numără sistemul de operare Linux, serverul web Apache, browser-ul Mozilla Firefox, limbajul de scripting server-side PHP, aplicaţia de gestiune a bazelor de date MySQL, suita office Open Office şi lista poate continua.
Pentru o înţelegere mai exactă a fenomenului open source, a motivaţiilor şi a culturii născute în jurul acestuia vă recomandăm următoarele cărţi:
- The Cathedral & the Bazaar de Eric S. Raymond. O’Reilly 2001. Una din cărţile cu cel mai mare impact asupra fenomenului open source. Versiunea on-line (inclusiv versiunea în limba română) poate fi citită la http://catb.org/~esr/writings/cathedral-bazaar
- Open Sources: Voices from the Open Source Revolution. O’Reilly 1999. O colecţie de eseuri semnate de cele mai importante personalităţi ale lumii open source. Apărută în 1999.
- Open Sources 2.0: The Continuing Evolution. O’Reilly 2005. O continuare a ediţiei din 1999 cu eseuri asupra proiectelor open source actuale.
- Free as in Freedom: Richard Stallman and the Free. O’Reilly 2002. Carte semnată de faimosul iniţiator al Free Software Foundation.
- Producing Open Source Software: How to Run a Successful Free Software Project. O’Reilly 2005.
- Open Source for the Enterprise. O’Reilly 2005.
- Understanding Open Source and Free Software Licensing. O’Reilly 2004.
- The Success of Open Source. Harvard University Press 2005.
- Open Source Licensing: Software Freedom and Intellectual Property Law. Prentice Hall 2004.
- Perspectives on Free and Open Source Software. MIT Press 2005.
- Succeeding with Open Source. Addison-Wesley 2004.
- Understanding Open Source Software Development. Addison-Wesley 2002.
Open source si GIS
Aplicaţiile GIS open source au cunoscut în ultimii ani o dezvoltare şi o diversificare puternică, iar astăzi putem afirma cu certitudine că acoperă fiecare nivel din ciclul de utilizare a datelor geospaţiale.
În cazul Sistemelor Informaţionale Geografice, avantajelor clasice ale utilizării aplicaţiilor open-source: reducerea costurilor, control asupra tehnologiei utilizate etc.; li se adaugă o componentă extrem de importantă, şi anume: compatibilitatea cu standardele existente în acest domeniu, marea majoritate a aplicaţiior GIS open source fiind 100% compatibile cu standardele în vigoare. Elaborarea standardelor ce guvernează modului de gestionarea a informaţiei geospaţiale cade în sarcina OGC, un organism internaţional independent, format din reprezentanţi ai agenţiilor guvernamentale, companii private şi mediul universitar. Standardele elaborate de OGC sînt mai apoi preluate de alte organisme internaţionale de standardizare, cele mai importante fiind ISO şi CEN etc.
Din punct de vedere al limbajelor de programare utilizate în dezvoltare, aplicaţiile GIS open source se împart în două mari clase: “C” şi “Java”. O a treia categorie este reprezentată de aplicaţiile web, de tipul celor care oferă servicii web spaţializate. Pentru a consulta o listă exhaustivă a aplicaţiilor GIS open source existente (indexate pe criterii complexe) vă recomandăm site-ul freegis.org.
Comunitatea GIS open source este una destul de numeroasă, polarizată în special de proiectele complexe: GRASS, UMN Mapserver, GDAL/OGR. Anul 2006 a fost unul istoric pentru comunitate în urma lansării OSGeo. OSGeo este o organizaţie non-profit ce are drept obiectiv susţinerea şi promovarea dezvoltării de tehnologii geospaţiale open source precum şi a datelor geospaţiale libere. Fundaţia oferă ajutor financiar, organizaţional şi suport legal pentru o paletă largă de activităţi ale comunităţii geospaţiale. De asemenea, serveşte drept entitate independentă, legal constituită, către care membrii comunităţii pot contribui cu cod sursă, bani, expertiză tehnică etc, avînd siguranţa ca aceste resurse vor fi utilizate în beneficiul publicului. OSGeo funcţionează drept “vehicul” de popularizare a tehnologiilor open source în cadrul comunităţii geospaţiale şi oferă infrastructura necesară pentru partajare informaţiilor, cunoştinţelor şi datelor în cadrul proiectelor colective. Tot în sarcina OSGeo cade şi organizarea anuală a unei conferinţe internaţionale şi acordarea premiului Sol Katz, pentru servicii aduse comunităţii geospaţiale. Prima conferinţă organizată după constituirea OSGeo, FOSS4G2006, a avut loc la Lausanne – Elveţia şi a adunat la un loc mai bine de 500 de participanţi.

Sigla Open Source Geospatial Foundation
Oferta de software GIS open source
În continuare vom încerca să facem o trecere în revistă a principalelor aplicaţii GIS open source. Demersul nostru nu are pretenţia de a epuiza subiectul, prezentînd toate aplicaţile existente, ci doar de a prezenta o parte din alternativele de pe fiecare palier GIS. O clasificare a aplicaţiilor GIS open source poate fi făcută după mai multe criterii. Cele mai importante ar fi: tipul aplicaţiei (librărie, aplicaţie desktop, aplicaţie server, toolkit web), funcţionalitate (vizualizare, editare, stocare, analiză spaţială etc.), sistemul de operare pe care rulează, limbajul de programare folosit la dezvoltare şi tipul de licenţă. Primele două criterii par să fie cele mai relevante în realizarea unei astfel de clasificări. Din păcate, o clasificare clară, folosind aceste criterii două criterii, nu este posibilă, aceasta deoarece multe din aplicaţii depăşesc sfera strîmtă a unei singure categorii, incluzînd într-o măsură mai mare sau mai mică funcţionalitate din celelalte categorii. În cazul de faţă, ne-am oprit la o clasificare pe baza tipului de aplicaţie, detaliată apoi pe baza funcţionalităţii. Un ajutor important în realizarea acestei clasificări l-a constituit articolul lui Paul Ramsey: The State of Open Source GIS.
Librării şi toolkit-uri de dezvoltare
Librăriile sau bibliotecile partajate open source permit încorporarea de funcţionalitate specifică fără a mai pierde vremea cu dezvoltarea acestora. În acest fel productivitatea creşte, programatorul putîndu-se concetra asupra obiectivelor primare ale aplicaţiei pe care o dezvoltă fără a mai pierde timp cu scrierea de funcţii conexe. De exemplu, o aplicaţie de editare a datelor vectoriale presupune existenţa unor module care să se ocupe de importul/exportul datelor dintr-un număr mare de formate de fişier, baze de date sau servicii web, reproiectarea datelor într-un anumit sistem de coordonate sau definirea unor reguli topologice de validare a datelor. Toate aceste funcţionalităţi conexe funcţiilor primare de editare a datelor pot fi rezolvate rapid şi eficient prin încorporarea librăriilor OGR, PROJ4 şi JTS/GEOS. Această abordare nu doar reduce timpul necesar dezvoltării unei aplicaţii noi, prin evitarea “reinventării roţii” dar asigură şi compatibilitate/interoperabilitate cu aplicaţiile existente.
GDAL/OGR
| Website | www.gdal.org, gdal.osgeo.org, gdal.maptools.org, remotesensing.org/gdal, remotesensing.org/gdal/ogr |
|---|---|
| Autor | Frank Warmerdam |
| Limbaj | C++ |
| Licenţă | MIT |
GDAL/OGR reprezintă două din cele mai utilizate librării din lumea open source GIS. GDAL este un translator ce “stie” să citească şi să scrie un număr impresionant de formate de date raster. Datorită licenţei permisive, GDAL, este folosit şi de numeroase de aplicaţii comerciale. Recent ESRI, a integrat funcţionalitatea GDAL în versiunea 9.2 a suitei ArcGIS. Pentru o listă completă a formatelor suportate de GDAL consultaţi tabelul de pe site-ul oficial.
OGR este o librărie similară cu GDAL, dar concepută pentru manipularea datelelor vectoriale. Pentru o listă completă a formatelor suportate de OGR consultaţi tabelul de pe site-ul oficial.
FDO
| Website | fdo.osgeo.org |
|---|---|
| Autor | Autodesk |
| Limbaj | C++ |
| Licenţă | LGPL |
Feature Data Objects (FDO) este o librărie de manipulare a datelor spaţiale dezvoltată de Autodesk. Deşi iniţial a fost folosită exclusiv comercial, în cadrul unei serii de produse din familia Autodesk (Autodesk Map 3D, Autodesk MapGuide), în 2006, FDO este publicat sub licenţă open source împreună cu MapGuide, soluţia de webmapping dezvoltată de Autodesk. La acest moment, FDO Open Source oferă suport pentru citirea şi scrierea datelor geospaţiale în format ESRI ArcSDE (în baze de date Oracle si SQL Server), MySQL, SDF (noul format de fişier creat de Autodesk pentru stocarea datelor geospaţiale), ESRI Shapefile, ODBC (permite stocarea de puncte în format XYZ) şi suport pentru citirea datelor WFS, WMS şi a formatelor raster suportate de GDAL.
PROJ4
| Website | proj.maptools.org, remotesensing.org/proj |
|---|---|
| Autor | Frank Warmerdam |
| Limbaj | C |
| Licenţă | MIT |
PROJ4 este o librărie ce permite efectuarea de transformări între diversele sisteme de coordonate, sferoizi şi datum-uri. PROJ4 integrează aproape în întregime baza de date geodetică EPSG (European Petroleum Survey Group, entitate absorbită în 2005 de OGP – International Association of Oil & Gas). Dezvoltată iniţial de Gerald Evenden, librăria PROJ4 a fost preluată şi menţinută de Frank Warmerdam.
Shapelib
| Website | shapelib.maptools.org |
|---|---|
| Autor | Frank Warmerdam |
| Limbaj | C |
| Licenţă | MIT |
Librărie ce permite citirea şi scrierea fişierelor de tip ESRI Shapefile. Răspîndirea puternică a formatului de fişier Shapefile a determinat şi o popularitate ridicată pentru librăria Shapelib.
JTS Topology Suite
| Website | www.jump-project.org |
|---|---|
| Autor | Vivid Solutions |
| Limbaj | Java |
| Licenţă | LGPL |
Librărie Java ce implementează modelul geometric pentru obiectele spaţiale definit de OGC în standardul Simple Features Specification for SQL. Funcţiile JTS includ suport pentru:
- predicate spaţiale (pe baza modelului DE-9IM);
- funcţii de suprapunere (intersecţie, diferenţă, uniune, diferenţă simetrică);
- buffer;
- convex hull;
- funcţii referitoare la distanţe şi suprafeţe;
- verificarea validităţii topologice.
JTS oferă suport pentru următoarele tipuri geometrice de date spaţiale: punct, multi-punct, polilinie, polilinie închisă, multi-polilinie, poligon, multi-poligon, colecţii geometrice complexe.
Funcţionalitate JTS a fost portată şi pentru mediul C++ sub forma librăriei GEOS.
GEOS
| Website | geos.refractions.net |
|---|---|
| Autor | Refractions Research |
| Limbaj | C++ |
| Licenţă | LGPL |
GEOS (Geometry Engine – Open Source) reprezintă o portare a librăriei JTS în mediu C++.
GeoTools
| Website | http://docs.codehaus.org/display/GEOTOOLS |
|---|---|
| Autor | GeoTools Project Management Committee |
| Limbaj | Java |
| Licenţă | LGPL |
GeoTools este un toolkit de dezvoltare a aplicaţiilor GIS, ce oferă metode standard de manipulare a datelor geospaţiale, implementat conform standardelor OGC. GeoTools este dezvoltat în strînsă legătură cu proiectele complementare GeoApi şi GeoWidgets. Scopul proiectului nu include şi dezvoltarea de aplicaţii complete pe baza GeoTools ci acela de a oferi funcţionalitate GIS standard pentru creatorii de aplicaţii server-side sau desktop. GeoTools e construit într-o manieră modulară, fapt ce permite dezvoltatorilor să folosească doar funcţionalitatea de care sînt interesaţi, fără a fi nevoiţi să înţeleagă sau să includă întrega funcţionalitate a toolkit-ului.
GeoTools include suport pentru o multitudine de formate de date spaţiale prin intermediul a două interfeţe:
- DataStore pentru accesarea datelor vector. La acest moment sînt suportate formatele: Shapefile, GML, WFS, PostGIS, Oracle Spatial, ArcSDE, MySQL, GeoMedia, Tiger, VPF, MapInfo TAB.
- GridCoverageExchange pentru accesarea datelor raster. Formatele suportate sînt: ESRI ASCII, GRASS ASCII, fişiere imagine + world file (JPEG, TIF, PNG, GIF), GeoTiff, WMS.
Printre aplicaţiile dezvoltate cu ajutorul GeoTools se numără: GeoServer, uDig, GeoVista, MyMaps.
GeoApi
| Website | geoapi.sourceforge.net |
|---|---|
| Autor | GeoAPI Working Group |
| Limbaj | Java |
| Licenţă | BSD |
GeoApi este un proiect ce îşi propune reducerea paralelismelor în dezvoltarea de aplicaţii GIS şi creşterea interoperabilităţii prin oferirea unor interfeţe API neutre, realizate conform standardelor şi recomandărilor OGC. Pentru moment aceste aplicaţii sînt realizate în Java, dar în viitor nu este exclusă şi utilizarea altor medii de programare. Grupul de dezvoltatorii ai GeoApi este format în principal din membrii ai Open Geospatial Consortium Technical Committee. Rezultatele proiectului GeoApi sînt folosite în numeroase aplicaţii GIS open source, precum: GeoTools, degree, uDig, GeoServer, Seagis.
GeoWidgets
| Website | geowidgets.sourceforge.net |
|---|---|
| Autor | Matthias Basler |
| Limbaj | Java |
| Licenţă | LGPL |
GeoWidgets urmăreşte realizarea unui set standard de widget-uri pentru aplicaţiile GIS dezvoltate folosind GeoTools. Printre acestea se numără widget-uri de afişare a hărţilor, legendelor, casete de selectare a sistemelor de coordonate etc.
GeoVista Studio
| Website | www.geovistastudio.psu.edu |
|---|---|
| Autor | Penn State Department of Geography |
| Limbaj | Java |
| Licenţă | LGPL |
GeoVista Studio este o platformă ce permite dezvoltarea de aplicaţii software de vizualizare si analiză a datelor geospaţiale. Utilizatorii, în special din comunitatea ştiinţifică şi cea academică, pot beneficia de funcţionalitatea inclusă în GeoVista Studio fără a avea nevoie de cunoştinţe de programare. Astfel pot fi repede construite aplicaţii independente de vizualizare (2D/3D) şi analiză geostatistică a datelor geografice.











