Accesarea datelor PostgreSQL în ArcMap prin PostGIS și zigGIS
de Marius Jigmond
25.10.2014 Tutorialul de fața folosește o versiunea mai veche a softului prezentat. Va rugăm consultați versiunea actualizată sau contactați autorul.
Introducere
Am auzit cu toții de MS SQL, Oracle, și ArcSDE dar puțini dintre noi își permit astfel de licențe (începînd cu ArcGIS Desktop 9.2 ArcSDE este inclus). Există însă soluții open-source care pot fi folosite parțial pentru a accesa date geografice. În loc de MS SQL sau Oracle putem folosi PostgreSQL în combinație cu PostGIS (o extensie care aduce suport pentru date spațiale bazelor de date din PostgreSQL). Pentru a accesa datele in ArcMap vom folosi un plug-in încă în stadiu de dezvoltare numit zigGIS care acționează ca un conector între straturile din PostGIS și ArcMap.
Instalare și Configurare
Spre fericirea multora (inclusiv a mea) toate soluțiile open-source folosite aici includ pachete de instalare automată. Va trebui să obțineți PostgreSQL 8.2.5, PostGIS 1.3.1 și zigGIS 1.2.0.
Notă: PostGIS este inclus in pachetul de instalare PostgreSQL dar nu este o versiune recentă. De aceea aveți grijă să nu selectați extensia PostGIS la instalarea pachetului PostgresSQL.
Instalați pachetele in următoarea ordine:
1.PostgreSQL (fără extensia PostGIS). Folosiți opțiunea de instalare ca serviciu care ascultă pe portul standard 5432. Instalarea crează un utilizator postgres pentru care alegeți o parolă.
2. PostGIS (instalarea detectează automat prezența PostgreSQL). La instalare aveți opțiunea de a crea automat o bază de date (recomandabil).
3. zigGIS. După instalarea pachetului porniți ArcMap, navigați in meniu la Tools—>Customize. Dați click pe tab-ul Commands, in fereastra din stînga navigați jos la ZigGIS (dați click) iar în fereastra din dreapta va apărea comanda Add PostGIS Layer pe care o puteți trage cu mouse-ul intr-unul din meniurile dumneavoastră. Vedeți imaginile de mai jos.
Modul de folosire
Pentru început trebuie să adăugăm date geografice in baza de date creată la instalarea PostGIS. Puteți obține date din articolul recent al lui Vasile. Porniți o sesiune Command Prompt prin Start—>Programs—>PostgreSQL 8.2—>Command Prompt. Vom folosi comanda shp2pgsql cu următoarea sintaxă:
shp2pgsql -s <srid> <locație și nume fișier shp> <numele tabelă în baza de date> > <locație și nume fișier sql>
srid este un cod numeric asociat unei proiecții geografice. În cazul proiecției Stereo 70, codul srid este 31700. De exemplu, folosind fișierul de județe din acest articol comanda ar arăta în felul următor:
shp2pgsql -s 31700 M:\Temp\Romania\judete_ro.shp judete > M:\Temp\Romania\judete.sql
Rezultatul executării comenzii ar trebui să arate in felul următor:
Shapefile Type: Polygon
PostGIS Type: MULTIPOLYGON[2]
Pasul tocmai executat crează un fișier script sql. Folosind interfața grafică pgAdmin III de administrare a PostgresSQL vom rula scriptul judete.sql. Navigați la Start—>Programs—>PostgreSQL 8.2—>pgAdmin III. Navigați la baza de date pe care ați creat-o la instalarea PostGIS și dați click pe ea. Butonul de executare a scripturilor sql va deveni activ. Vedeți imaginea de mai jos.
Dați click pe buton iar in fereastra nouă ce se deschide folosiți butonul de deschidere fișier, navigați unde ați salvat fișierul judete.sql, iar dupa încărcare, executați scriptul cu butonul de rulare. Vedeți imaginea pentru localizarea butoanelor.
După executarea scriptului veți avea o nouă tabelă in baza de date. Pentru a verifica, navigați ca în imagine pentru a verifica.
Mai avem de configurat un fișier cu extensia .zig înainte de a accesa datele în ArcMap. În C:\Program Files\zigGIS veți găsi fișierul example.zig care poate fi editat și salvat cu un nou nume. Trebuie editate următoarele cîmpuri:
[connection]
; Your PostgreSQL server.
server = localhost
; Your PostgreSQL server's port.
port = 5432
; Your PostGIS database.
database = Romania
; Your PostGIS user.
user = postgres
; Your PostGIS password.
password = postgres
Aveți grijă să utilizați numele și parolele selectate de dumneavoastră la instalare. Salvați fișierul cu un nou nume și sîntem gata pentru vizualizarea datelor în ArcMap. Porniți ArcMap și dați click pe noul buton creat Add PostGIS Layer. Selectați fișierul .zig pe care tocmai l-ați creat și dați Open. În fereastră va apărea stratul public.judete pe care îl puteți selecta și da OK. Noul strat va fi incărcat in ArcMap dacă totul s-a desfășurat fără probleme.
Harta finală (după simbolizare) ar trebui să arate în felul următor.
Concluzii
zigGIS este o metodă elegantă de incărcare a datelor geografice din bazele de date PostgreSQL/PostGIS. Din păcate la momentul actual PostGIS suportă doar date de tip vectorial (point, line, polygon), iar extensia zigGIS suportă doar modul de citire, nu și de scriere. Sper ca pe cînd ajunge la maturitate funcțiile de scriere vor fi și ele disponibile, iar PostGIS va suporta și date de tip raster. De asemenea, ArcGIS 9.3 promite suport pentru PostgreSQL, dar rămîne de văzut în ce măsură. Dacă aveți întrebări sau sugestii nu ezitați să lăsați un comentariu.