Sunteți pe pagina 1din 67

Baze de date spaţiale

1. Reprezentarea datelor în GIS (Geographic Information System)

1.1 Tipuri de date spaţiale

Data spaţială este un termen utilizat pentru a descrie datele care aparţin spaţiului ocupat de
obiectele unei baze de date. In sens larg, datele spaţiale pot fi: puncte, linii, poligoane, suprafeţe,
volume (date avînd mai multe dimensiuni), numite generic, vectori.
Punctul este caracterizat prin locaţia sa, nu ocupă spaţiu şi nu are asociată o arie sau un
volum. Intr-o bază de date punctul se stochează printr-o măsură directă a lui sau printr-o măsură
indirectă (transformare). Data de tip raster este un exemplu de folosire a măsurii directe a unui punct
şi include harta de pixeli (imaginea bitmap). De exemplu, o imagine preluată din satelit realizează o
corespondenţă directă între un pixel de imagine şi suprafaţa acoperită de el pe suprafaţa terestră.
Linia se caracterizează prin existenţa a două puncte (cel de început şi cel de sfîrşit) urmînd ca
punctele intermediare să fie generate prin ecuaţia dreptei. Un obiect spaţial este descris, de obicei,
printr-o colecţie de segmente ca de exemplu cursul unui rîu sau un drum. Caracteristica nonspațială
asociată în mod implicit acestui tip de dată spațială este lungimea (Shape_Lenght).
O dată spaţială de tip poligon se caracterizează printr-o locaţie şi un contur. Locaţia este dată
de un punct fix pentru a ancora poligonul în spaţiu (de obicei este punctul din centrul regiunii,
denumit centroid). In spaţiul bidimensional, conturul se vizualizează ca o linie iar în spaţiul
tridimensional ca o suprafaţă. Data de tip poligon stocată într-o bază de date este o aproximare
geometrică a unui obiect spaţial care ocupă o anumită suprafață în spațiul real (de exemplu, judeţele
unei ţări, lacurile etc.). Caracteristicile nonspațiale asociate, în mod implicit acestui tip de dată
spațială, sunt: perimetrul (Shape_Lenght) și aria (Shape_Area).
Coordonatele unui punct se precizează printr-o pereche de valori (x,y) sau prin tripleta
(x,y,z), unde z exprimă altitudinea punctului. Coordonatele punctelor furnizează datelor spaţiale
două perspective: una geografică care depinde de sistemul de coordonate folosit şi referă poziţia şi
eventual dimensiunea elementului în spaţiul real precum şi una ecran ce ţine de afişarea datelor
spaţiale pe monitorul calculatorului.

Un sistem de coordonate este un sistem pentru referirea locaţiilor caracteristicilor spaţiale pe


suprafaţa pamântului. Deoarece sistemele informatice geografice lucrează cu date geografice,
sistemul de coordonate joacă un rol cheie într-un proiect GIS. Sunt două tipuri de sisteme de
coordonate: geografice şi proiecţii.

Figura 1 Latitudine - Longitudine


1
Un sistem de coordonate geografice este format din longitudine şi latitudine. Prin longitudine
se înțelege unghiul format între primul meridian și poziția pe glob, în timp ce prin latitudine se
înțelege unghiul format între ecuator și poziția pe glob (figura 1).
Un sistem de coordonate de tip proiecţie este un sistem de coordonate în plan, bazat pe o
proiecţie a hărţii. Hărţile sunt reprezentate în plan dar ele reprezintă suprafeţe curbe. Transformarea
spaţiului tridimensional într-un spaţiu bidimensional se numeşte proiecţie (figura 2). De exemplu,

Suprafața pamântului
Proiecția
Harta în plan

Figura 2 Proiecția hărților


sistemul de coordonate UTM (Universal Transverse Mercator) se bazează pe proiecţia Mercator.
Un sistem de coordonate, fie geografic fie proiecţie, este definit de un set de parametri.
Parametrul de bază al unui sistem de coordonate geografic este datum-ul. Datum-ul este o
reprezentare matematică a formelor pe suprafaţa pământului. Un datum este definit printr-un sferoid
care aproximează forma pamântului şi prin poziţia relativă la centrul pamântului. Există mai multe
astfel de reprezentări. Datum-ul orizontal furnizează un cadru de referinţă pentru măsurarea locaţiilor
de pe suprafaţa pământului. Un datum local aliniază sferoidul astfel încât acesta să cuprindă cât mai
exact o anumită suprafaţă din suprafaţa pământului; punctul de origine este localizat pe suprafaţa
pământului şi nu în centrul lui. De exemplu, datumul European din 1950 şi NAD27 sunt datum-uri
locale. Spre deosebire de un datum local, un datum centrat pe întregul pământ nu are un punct iniţial
de origine; în acest caz, centrul pamântului este considerat a fi originea. Cel mai recent datum definit
şi utilizat având ca sferă de cuprindere întregul pământ este WGS84 (World Geodetic System din
1984).
Parametrii unui sistem de coordonate de tip proiecţie defineşte nu numai proiecţia ci şi sistemul de
coordonate geografic care este astfel proiectat. Spre exemplu, pentru România sistemul geografic de
coordonate este Stereo70, proiecţia stereografica, datum Pulkovo 1942, elipsoid Krasovsky 1940.

Figura 3 Vizualizarea spaţială a tabelei judeţe


2
Datele spaţiale sunt frecvent puse în corelaţie cu atribute convenţionale (date nonspaţiale). De
exemplu, un judeţ se descrie spaţial printr-un poligon (regiune) dar şi nonspaţial prin nume,
reședință, număr de localităţi, populaţie etc. In funcție de modul de organizare a datelor și al
realizării legăturii dintre atributele nonspațiale și cel spațial s-au definit două modele:
Modelul de date georelațional implică stocarea datelor în formate independente care se bazează pe
divizarea atributelor în două entități și stocarea lor separată. Astfel, o dată spațială este alcătuită din
atributul spațial, care se stochează separat de atributele nonspațiale, legătura fiind făcută prin
intermediul unui câmp de identificare (ID), ce are rolul de combina, în mod coerent, cele două tipuri
de atribute. Legătura dintre entități se poate face bidirecțional adică fie de la cele spațiale către cele
nonspațiale sau invers, ca în figura 5. Acest lucru este vizibil la formatul independent shape (shp)
deoarece acest format are, din punct de vedere fizic, mai multe fișiere printre care cel cu extensia shp
care stochează geometria datelor și cel cu extensia dbf care stochează atributele nonspațiale sub
forma unei tabele de date conform modelului relațional. Legătura înainte (figura 5a) este utilizată la
accesarea informaţiilor spaţiale ale unui obiect, pornind de la informaţiile lui nespaţiale în timp ce
Legătura înapoi (figura 5b) foloseşte la regăsirea informaţiei nespaţiale a unui obiect pornind de la
informaţia lui spaţială.

Stocarea datelor spațiale prin modelul geobază de date presupune stocarea atât a atributelor
spațiale cât și a celor nonspațiale, împreună, într-o tabelă de atribute. Câmpul care conține atributul
spațial este de tip shape (formă geometrică) iar din perspectiva sistemului de gestiune a bazelor de
date este de cele mai multe ori un câmp de tip BLOB (binary large object). Există extenstii ale unor
SGBD-uri care includ si tipuri asociate datelor spațiale cum ar fi Oracle Spatial, extensia spatiala a
celor de la Oracle. Atributele spaţiale ca şi cele nespaţiale apar şi la nivelul conceptual. Astfel,
valoarea unui atribut spaţial este comună tuturor atributelor nespaţiale dintr-un tuplu. Tuplurile unei
tabele care conţine un atribut spaţial pot fi vizualizate atît geometric (spaţial) cît şi în mod clasic,
relaţional (tabelar).
Pentru exemplificare, să presupunem că tabela judeţe stochează judeţele României descrise
printr-un atribut spaţial de tip poligon (suprafaţă) şi prin atribute nonspaţiale: simbolul judeţului,
numele şi reşedinţa lui. In figura 3 se vizualizează tuplurile în formă geometrică în timp ce, în figura
4, aceeaşi tabelă se vizualizează tabelar.

3
Figura 4 Vizualizarea tabelară a relaţiei judeţe

Se poate observa că tabela a fost indexată şi după cîmpul simbol care indentifică în mod unic un
judeţ şi s-au utilizat aceleaşi simboluri de identificare ca cele folosite la înmatricularea
autovehiculelor.
Modelul orientat obiect poate fi de asemenea utilizat ca fundament pentru bazele de date
spaţiale. Această metodologie permite o mai bună structurare a informaţiilor, prin introducerea
conceptelor de clasă şi moştenire. Încapsularea datelor şi supraîncărcarea funcţiilor facilitează
manipularea datelor şi fac ca reprezentarea fizică şi logică a datelor să fie independente, una în raport
cu cealaltă. In cazul bazelor de date spaţiale, concepte precum: clasa, moştenire, încapsulare, tip şi
metodă sunt uşor de utilizat. Diferitele tipuri spaţiale de date pot fi implementate ca nişte clase cu
posibilităţi de a fi moştenite, construind subclase. Astfel, datele spaţiale pot fi modelate la două
niveluri: hartă şi geometric. O bază de date spaţială conţine un set de hărţi, unde o hartă este o relaţie
care are cel puţin un atribut spaţial. Operaţiile cu o hartă sunt implementate ca metode ale obiectelor
ce aparţin hărţii. Nivelul geometric corespunde atributelor spaţiale care sunt reprezentate prin tipuri
de date geometrice, ca de exemplu: puncte, linii, poligoane etc.

4
Atribute nespaţiale Structuri de date spaţiale

Date nespaţiale pentru Regiunea 1 Regiunea 1

Date nespaţiale pentru Regiunea 2 Regiunea 2

Date nespaţiale pentru Regiunea 3


Regiunea 3 Regiunea 4
Date nespaţiale pentru Regiunea 4

Date nespaţiale pentru Regiunea 5

Regiunea 5

(a)

Structuri de date spaţiale


Atribute nespaţiale

Date nespaţiale pentru Regiunea 1 Regiunea 1

Date nespaţiale pentru Regiunea 2 Regiunea 2

Date nespaţiale pentru Regiunea 3


Regiunea 3 Regiunea 4
Date nespaţiale pentru Regiunea 4

Date nespaţiale pentru Regiunea 5

Regiunea 5

(b)
Figura 5 Tipuri de legături: înainte (a) şi înapoi (b)

1.2 Modelul raster

Pe lângă reprezentarea vectorială, lumea mai poate fi reprezentată şi în format raster sau
bitmap. In acest format, o regiune se reprezintă ca fiind un grid de culoare, fiecare celulă (pixel)
acoperă o anumită arie de pe suprafaţa terestră. Gridul (imaginea) este, de asemenea, localizată
geografic în spaţiu. Cu alte cuvinte, o dată spaţială de tip raster conţine pe lângă harta propriu-zisă de
biţi şi informaţii de localizare în spaţiul geografic, astfel se spune că imaginea este georeferențiată. In
acest format sunt furnizate hăţile de către salteliţi, cele obţinute prin scanare, prin fotografierea
arealului studiat (ortofotoplan) etc. Pornind de la hărţile în format raster, prin procesul de vectorizare
5
se obţin atributele spaţiale care sunt apoi grupate pe straturi tematice (layers). Reprezentările în
format raster sunt adesea utilizate pentru a reprezenta altitudinea unei regiuni prin folosirea unui
gradient de culoare astfel încât variația culorii determină variația altitudinii punctelor pe care le
reprezintă. In GIS imaginile se pot combina cu reprezentările vectoriale pentru a oferi mai mult
realism regiunii analizate. Spre exemplificare, în figura 6, se reprezintă în ArcMap o zonă din
Bucureşti printr-un raster în format tif, iar clădirile analizate sunt reprezentate printr-un strat tematic
de tip poligon. O altă utilitate a hărților în format raster este dată de faptul că, prin intermediul lor se
pot exprima fenomene dintre cele mai diverse care nu pot fi delimitate aprioric spațial prin existența
unor vectori. De exemplu, dacă se urmărește vizualizarea răspândirii noxelor în diverse concentrații
pe arealul studiat, se va utiliza o reprezentare de tip raster deoarece fenomenul nu poate fi limitat la
granița unui județ sau a unei regiuni. Insă dacă dorim să analizăm rata șomajului atunci este indicat
ca acest indicator să se vizualizeze pe date vectoriale care să reprezinte, de exemplu, județele unei
tări, macroregiuni de dezvoltare sau chiar tările unui continent.

Figura 6 Descrierea unei regiuni prin vectori şi raster

6
Baze de date spaţiale

1. Structuri de date pentru reprezentarea şi indexarea datelor spaţiale


Datele spaţiale sunt stocate în structuri de date spaţiale. Dintre acestea, un loc important îl
ocupă cele ierarhice care sunt bazate pe principiul descompunerii recursive. Avantajele acestor tipuri
de structuri rezultă din faptul că sunt compacte, depind de natura datelor şi permit realizarea
operaţiilor de interogare în mod eficient. O astfel de structură de date este quadtree şi are la bază
principiul descompunerii recursive, similar metodei divide-and-conquer. Ea se poate utiliza la
descrierea mai multor elemente aparţinînd clasei datelor spaţiale ca de exemplu: puncte, linii,
poligoane etc.
O dată spaţială ce exprimă o regiune poate fi reprezentată fie prin interiorul ei, fie prin conturul
ei. Se presupune, în descrierea procesului de construire a arborelui, plecînd de la o imagine, că o
regiune este reprezentată de interiorul ei (figura 1).
0 0 0 1 1 0 0 0
0 0 0 1 1 0 0 0
0 0 0 1 1 0 0 0
0 0 0 1 1 1 1 0
1 1 1 1 0 0 0 0
1 1 1 1 0 0 0 0
1 1 1 1 0 0 0 0
1 1 1 1 0 0 0 0
(a) imagine (b) reprezentarea binară
Figura 1 Reprezentarea binară a unei imagini
Structura quadtree se bazează pe subdivizarea succesivă a unei imagini în patru cadrane de
mărimi egale. Dacă un cadran nu conţine numai valoarea 1 sau numai valoarea 0, el va fi din nou
subdivizat în patru cadrane şi aşa mai departe pînă sunt obţinute cadrane ce au fie valoarea 1 fie 0.
Valorile 1 respectiv 0 semnifică faptul că zona aparţine sau nu regiunii respective. Pentru
exemplificare se va considera imaginea din figura 1a şi reprezintarea ei binară (bitmap) în figura 1b.
Prin împărţirea succesivă în cadrane, figura 2a se observă că zonele astfel obţinute (cadranele) fie
aparţin regiunii fie nu. De exemplu, dacă regiunea este omogenă din punct de vedere a culorii atunci
cadranele care acoperă regiunea trebuie să aibă aceeaşi culore.

I IV

II III

(a)
Descompunerea unei imagini în cadrane

Niveluri

1
3 O
I II III IV
2 O  O O

1 O O O O O O O O

0 OOOO OOOOOO

(b)
Quadtree

Figura 2 Descompunerea imaginii


Cadranele obţinute în urma procesului de divizare a spaţiului se pot reprezenta prin intermediul
unui arbore numit quadtree. Structura quadtree este în esenţă un arbore oarecare ce conţine noduri
avînd semnificaţiile:
- rădăcina corespunde imaginii în ansamblu;
- nodurile frunză corespund acelor blocuri pentru care nu mai sunt necesare subdivizări;
blocurile fie aparţin regiunii (1) fie sunt în afara ei (0);
- celelalte noduri reprezintă cîte un cadran al regiunii care a necesitat o subdivizare.
Pentru orice nod ce nu este frunză, fii lui corespund cadranelor în ordinea NE (I), SE (II), SV
(III), NV (IV).
Structura quadtree poate fi diferită în funcţie de:
a) Tipul de dată pe care o reprezintă şi care poate fi: punctul, linia, curba, suprafaţa şi regiunea.
b) Principiul care stă la baza procesului de descompunere care se poate face în părţi egale la
fiecare nivel (descompunere regulată) sau în m părţi de mărimi diferite în funcţie de data iniţială;
c) Rezoluţia descompunerii care poate fi variabilă
Această structură poate fi de asemenea utilizată la reprezentarea imaginilor în trei sau mai
multe dimensiuni. Varianta cu trei dimensiuni se numeşte octree.
Modelul de construire a acestui arbore presupune ca imaginea să fie încadrată într-un cub care
va fi recursiv subdivizat în 8 cuburi egale şi aşa mai departe pînă cînd sunt obţinute regiuni uniforme
din punct de vedere a culorii ori se ajunge la un anumit nivel predefinit de descompuneri.
Dezvoltarea unei structuri ierarhice este avantajoasă deoarece se poate folosi la procesele de
interogare a datelor spaţiale dar şi pentru că se economiseşte spaţiul de memorie necesar reprezentării
unor astfel de date.
Reprezentarea originală a structurii quadtree a fost aceea de arbore care utiliza pointeri. In
acest fel, spaţiul de memorie consumat este destul de mare, de aceea s-au propus, pentru a îmbunătăţi
acestă variantă, două modalităţi.
Prima tratează imaginea ca pe o colecţie de noduri frunză, unde fiecare nod este reprezentat
printr-o pereche de numere. Există un număr în baza 4, numit codul locaţiei, care corespunde
secvenţei direcţionale ce localizează frunza şi stabileşte astfel calea de la rădăcină şi un număr ce
indică adîncimea la care nodul frunză este regăsit.
A doua modalitate reprezintă imaginea în forma unei traversări a structurii quadtree. Ea este
foarte compactă dar nu este uşor de folosit cînd se doreşte accesul aleator la un anumit nod.

2
Reprezentarea punctelor se face în funcţie de operaţiile care urmează să se execute cu aceste
date. Dintre multiplele moduri de reprezentare a punctelor, adecvată este structura de date PR
quadtree (P pentru puncte şi R pentru regiuni), deci o adaptare a structurii quadtree la tipuri bine
precizate de date spaţiale. Această structură se bazează pe o descompunere regulată care urmăreşte
asocierea unui punct cu un cadran. Procesul de construire este similar cu cel al structurii quadtree,
diferenţa este că nodurile frunză fie nu conţin nimic, fie conţin puncte prin valorile coordonatelor lor.
In figura 3 se poate observa corespondenţa dintre puncte şi cadrane care stă la baza construirii
arborescenţei.
Dezavantajul metodei constă în faptul că, dacă punctele sunt foarte apropiate, atunci nivelul
maxim de descompunere poate fi foarte mare. Avantajul este că structura devine atractivă în cazul în
care prelucrarea datelor spaţiale implică operaţii de căutare. Un exemplu tipic de folosire a arborelui îl
constituie determinarea oraşelor din nord-estul ţării. Oraşele vor fi căutate în regiunile care compun
cadranul NE al imaginii (Suceava şi Iaşi), lucru uşor de realizat avînd în vedere modul de construire a
structurii quadtree.
(0,100) (100,100)
Suceava

 Iaşi
Sebeş
  Braşov
 Timişoara
 Năvodari
Bucureşti
 Mangalia
(0,0) (100,0)

Figura 3 Descompunerea în cadrane a imaginii


pentru construirea structurii PR quadtree

In concluzie, se poate spune că structura quadtree este dinamică în sensul că poate fi adaptată
cu uşurinţă la mai multe tipuri de date spaţiale.
Pentru manipularea datelor spaţiale este nevoie ca acestea să fie reprezentate în diferite forme.
O modalitate constă în a utiliza structuri de date bazate pe ocuparea spaţială a datelor. Acestă metodă
presupune descompunerea spaţiului în regiuni numite partiţii. De aceea, metoda este cunoscută sub
numele de metoda partiţionării. Partiţionarea datelor spaţiale se bazează pe conceptul minimizării ariei
ocupate de partiţie. In acest caz, obiectele spaţiale sunt grupate în ierarhii şi apoi ele sunt stocate în
alte structuri de date. Structurile de indexare a datelor spaţiale multidimensionale au la bază două
abordări:
- prima se bazează pe observaţia că data spaţială ocupă un subspaţiu a spaţiului
multidimensional;
- cea de-a doua se bazează pe faptul că data fiind multidimensională, un număr mic de
dimensiuni stochează majoritatea informaţiei.
Structura arborescentă R (Rectangle tree), face parte din prima categorie şi este similară ca
reprezentare şi mod de exploatare cu arborele B. Ea are mai multe variante proiectate în scopul
organizării unei colecţii de date spaţiale prin reprezentarea lor în dreptunghiuri n dimensionale.

3
Fiecare nod în arbore corespunde celui mai mic dreptunghi n dimensional care include fii lui. Nodurile
frunză conţin pointeri ce referă datele spaţiale din baza de date. Obiectele sunt reprezentate prin cele
mai mici dreptunghiuri care le conţin.
Arborele R este aplicat unei tabele cu tupluri reprezentînd date spaţiale, fiecare tuplu avînd un
unic identificator care poate fi utilizat la regăsirea lui.
Arborele R conţine noduri frunză de forma ( I, iid ),
unde:
I - un dreptunghi n dimensional ce reprezintă o cutie ce mărgineşte obiectul indexat;
iid - identificatorul tuplului şi se referă la înregistrarea din tabelă ce conţine obiectul
mărginit de I.
I = ( I0, I1, - - -, In-1 ),
unde:
n - numărul de dimensiuni;
Ii - un interval închis [a, b] ce precizează extinderea obiectului pe dimensiunea i. Astfel, Ii
poate avea una sau ambele limite egale cu  indicînd faptul că obiectul se extinde la .
Nodurile ce nu sunt frunze în arborele R au următoarea formă: ( I, pfiu),
unde:
pfiu - adresa nodului mai mic în arborele R;
I - un dreptunghi ce acoperă toate dreptunghiurile din intrarea nodurilor mai mici.
Se presupune că un nod conţine maxim M elemente iar m M/2 este un parametru ce specifică
numărul minim de elemente dintr-un nod. Un arbore are proprietatea că un nod trebuie să conţină între
m şi M elemente dacă el nu este rădăcină. Ca exemplu, se consideră colecţia de segmente dată în figura
4.
a
b
h
g e

i
d f
c

Figura 4 Colecţie de segmente


In figura 5 se prezintă arborele R asociat colecţiei de segmente din figura 4, nodurile avînd
capacitatea de maxim două elemente. Se poate observa în figura 5a modul de partiţionare a spaţiului în
vederea încadrării obiectelor spaţiale şi relaţia de incluziune dintre partiţii iar în figura 5b este descrisă
aceeaşi relaţie de partiţionare şi includere prin intermediul structurii arborescente R.
Din figura 5 reiese că, din partiţionarea spaţiului nu rezultă regiuni disjuncte. Zona de
intersecţie reprezintă procentul din volum care este acoperit de mai mult de un dreptunghi. Dacă un
nod al unui arbore R conţine n dreptunghiuri {R1,...,Rn}, zona de intersecţie poate fi definită formal ca
în relaţia 1.

4

i, j{1,...,n},i  j
( Ri  R j )
Zona de intersectie  (1)

i{1,..., n}
Ri

unde, || A|| - indică volumul acoperit de A.

R1 R3
h b
R4 a

g e
R5
i
d
f R6
c
R2

(a)

R1 R2

R3 R4 R5 R6

a b d g h c i e f

(b)

Figura 5 Arborele R
Un alt concept legat de intersecţia suprafeţelor este greutatea intersecţiei care reprezintă
procentul de obiecte care aparţin porţiunii de intersecţie din spaţiu.

{p / p   ( Ri  R j )}
i , j{1,..., n}, i  j
Greutatea intersectiei  ( 2)
{p / p   Ri }
i{1,..., n}

unde:
- |A| , indică numărul de obiecte conţinute în A;
- p, obiect spaţial.
O dată spaţială se asociază cu un singur dreptunghi, de exemplu, în figura 5, segmentul i este
asociat dreptunghiului R5 cu toate că şi partiţiile R1, R2 şi R4 partajează o suprafaţă din R5. In aceste
condiţii dacă se doreşte să se determine care obiect este asociat cu un punct particular vor fi necesare
mai multe căutări în baza de date datorită faptului că acel punct poate fi conţinut în mai multe partiţii.

5
Algoritmii de căutare, inserare şi ştergere sunt construiţi folosind aceleaşi principii utilizate la
implementarea structurii arborescente B+. Informaţiile ce se manipulează se referă la marcarea
dreptunghiului r, la cheia tuplului, respectiv la pointerul la subarborele corespunzător.

O problemă dificilă ţinînd cont de particularitatea datelor spaţiale este aceea a divizării
nodului. Fiind dată o pagină ce conţine M elemente este necesar să se dividă colecţia de M+1
elemente între două noduri.
Divizarea unui nod S={r1,...,rn} în două subnoduri S1={ri1,...,ris1} şi S2={ri2,...,ris2}, (S1 şi
S2) este definită ca:
Diviz(S)={ (S1,S2) / S=S1S2S1S2= }.
In urma procesului de divizare a nodului pot apare cazurile:
1. zonă de intersecţie minimală, dacă || r(S1)  r(S2) || este minimă;
2. zonă de intersecţie inexistentă, dacă || r(S1)  r(S2) || = 0;
3. echilibru dacă -  |S1|  |S2|  .
Deoarece decizia de a vizita un nod depinde dacă dreptunghiul aferent lui include zona căutată,
rezultă că aria totală de acoperire a celor două dreptunghiuri după divizare trebuie să fie minimă.
Comparînd figurile 6 a şi b se realizează o mai bună încadrare avînd în vedere criteriul enunţat în
figura 6a.
In literatura de specialitate sunt prezentaţi mai mulţi algoritmi ce realizează acest lucru avînd
performanţe diferite.
Algoritmul de divizare Quadratic este recunoscut datorită eficienţei sale şi distribuie un set de
M+1 elemente între două noduri.

a b

Figura 6 Incadrarea zonelor de acoperire


In primul pas se vor alege două elemente din cele M+1 ce vor fi puse, cîte unul, în cele două
noduri. In acest sens, se va calcula ineficienţa grupării pentru toate elementele. Astfel, pentru fiecare
pereche ri, rj, se compune un dreptunghi R incluzînd ariile ri, rj. Se calculează:
d = aria (R) - aria (ri) - aria(rj) şi se alege în final perechea pentru care rezultă cea mai mare valoare d.
In al doilea pas se controlează dacă toate elementele au fost distribuite la cele două noduri. In
caz afirmativ algoritmul se opreşte. Altfel, dacă un nod are puţine elemente, restul rămase nedistribuite
vor fi asignate la el pentru a avea numărul minim m şi în acest caz algoritmul se opreşte.
In al treilea pas se selectează următorul element pentru a fi asignat la unul dintre noduri.
Pentru fiecare element rămas r se calculează d1 aria mărită necesară pentru includerea dreptunghiurilor
elementelor din primul nod plus zona dată prin r. Se calculează d2 similar pentru elementele nodului al
doilea. Se găseşte astfel elementul cu cea mai mare preferinţă pentru un grup. Se alege acela pentru
care diferenţa între d1 şi d2 este maximă. Acesta se va adăuga la grupul al cărui dreptunghi acoperitor
va trebui să fie cel mai puţin mărit pentru a cuprinde elementul. Legătura se rezolvă şi prin adăugarea

6
elementelor la nodul cu o arie mai mică de cuprindere sau la unul cu mai puţine intrări. Apoi se
continuă cu pasul doi.
Acest algoritm nu garantează găsirea celui mai mic dreptunghi posibil de încadrare dar
performanţele lui sunt destul de bune luînd în considerare necesarul de timp de prelucrare pentru
obţinerea rezultatului.
Partiţionarea spaţiului în partiţii disjuncte a dus la crearea unei structuri derivate din arborele R
şi anume R+ . Deoarece regiunile sunt disjuncte, înseamnă că pot fi obiecte care nu se încadrează doar
într-o singură partiţie. De aceea, ele se vor descompune în subobiecte, fiecare aparţinînd unor regiuni
diferite. Devine, astfel, important să se determine partiţiile care conţin o anumită dată spaţială.
In figura 7 se prezintă un arbore tip R+ pentru aceeaşi colecţie de segmente (prezentată în
figura 4). Se observă că fiecare obiect este asociat cu toate partiţiile care-l intersectează deci, pot fi mai
multe căi de la rădăcină pînă la unul şi acelaşi obiect. De exemplu, în figura 7 segmentele c şi f apar în
două noduri diferite, în timp ce segmentul i apare în trei noduri.

b
R5
R3 a
h
g e

i
d f
R6 R2
R4 c
R1

(a)

R1 R2

R3 R4 R5 R6

d g h i c a b e i f c i f

(b)
Figura 7 Arborele R +
In literatura de specialitate s-a demonstrat că structurile de indexare bazate pe arbori R nu sunt
adecvate pentru date spaţiale reprezentate într-un spaţiu multidimensional.
O structură performantă de indexare a datelor spaţiale multidimensionale cu număr mare de
dimensiuni este arborele X (eXtended node tree). Structura arborelui X este prezentată în figura 8.
Se observă că el conţine trei tipuri de noduri:
- noduri de date care sunt la nivelul frunzelor şi fac legăura cu datele spaţiale care se
indexează;
- noduri directoare normale ce au rol în a dirija căutarea prin arbore şi sunt similare nodurilor
interne dintr-un arbore R; şi

7
- supernoduri care sunt în fapt noduri directoare de mărime variabilă.
Scopul principal al acestor supernoduri este să evite divizarea nodurilor directoare, care ar avea
ca rezultat construirea unei structuri ierarhice ineficiente. Arborele X este diferit de arborele R cu
noduri de dimensiuni mari prin faptul că el conţine noduri de dimensiuni mai mari doar dacă este
necesar. Supernodurile sunt create în timpul inserării cînd capacitatea unui nod trebuie depăşită şi nu
se poate evita acest lucru prin alte procedee.
Pentru un arbore X sunt două cazuri extreme:
1. nici un nod director nu este supernod;
2. există doar un singur supernod ce formează rădăcina arborelui, în rest sunt doar noduri de
date.

- nod director normal

- supernod

- nod de date

Figura 8 Structura unui arbore X


In primul caz, arborele X are o organizare complet ierarhică a nodurilor directoare şi este
similar unui arbore R. In al doilea caz, supernodul rădăcină corespunde nivelului celui mai de jos din
ierarhia nodurilor directoare ale unui arbore R. Performanţele unui astfel de arbore depinde de viteza
de prelucrare secvenţială a supernodului.

8
Baze de date spaţiale

Prezentare GIS
GIS este o tehnologie care se dezvoltă rapid şi care încorporează elemente grafice cu date
tabelare cu scopul de a oferi răspunsuri pentru probleme din lumea reală. Prima versiune de GIS a
fost cunoscută sub numele de cartografie asistată de calculator şi a constat în desenarea de linii
simple pentru redarea suprafeţei terestre. De aici a evoluat conceptul de suprapunere a diferitelor
elemente cartografice unele peste altele cu scopul de a determina modele şi cauze ale fenomenelor
spaţiale. In cadrul GIS se realizează conectarea atributelor nonspaţiale şi a datelor spaţiale. Această
conexiune oferă posibilitatea de prezentare a hărţilor tematice şi de analize spaţiale. Astfel de hărţi
pot fi incluse in diferite tipuri de rapoarte.
Un Sistem Informatic Geografic reprezintă în prezent o colecţie de: utilizatori, aplicații,
date geografice, software și hardware pentru managementul, analiza şi redarea tuturor tipurilor de
informaţii cu referinţă geografică.
Componeta hardware cuprinde echipamentul necesar pentru a susţine numeroasele activităţi
ale unui GIS, de la colectarea până la analiza datelor. Principala piesă de echipament este staţia de
lucru, pe care rulează software-ul GIS şi la care sunt ataşate echipamentele auxiliare. Culegerea
datelor poate necesita folosirea unui aparat pentru conversia datelor din format brut în date digitale şi
un echipament GPS pentru colectarea datelor pe teren. Odată cu apariţia GIS şi a dezvoltării
tehnologiilor web, serverele web au devenit o piesă importantă de echipament pentru GIS. Mai nou,
odată cu apariția și dezvoltarea dispozitivelor mobile, GIS-urile au căpătat o nouă dimensiune prin
aplicațiile de localizare și rutare ceea ce le face indispensabile unei mari categorii de utilizatori.
Dintre componentele software, pe primul loc se află pachetul de aplicaţii GIS. Acesta este
esenţial pentru crearea, editarea şi analiza datelor spaţiale şi a celorlalte atribute şi de aceea conţine o
multitudine de funcţionalități înglobate. Extensiile sau programele corelate auxiliare reprezintă
elemente software care extind capacităţile pachetului propriu-zis al GIS. Software-ul GIS orientat pe
componente este opusul software-ului de aplicaţie. Scopul lui este de a construi aplicaţii care
îndeplinesc un anumit obiectiv şi deci sunt limitate ca posibilităţi de analiză spaţială. Software-ul
utilitar constă în programe de sine stătătoare care îndeplinesc o anumită funcţie. Există de asemenea
software de tip web-GIS, care ajută la publicarea datelor spațiale în Internet și software de tip mobile-
GIS care oferă utilizatorului posibilitatea de a accesa sistemul de pe dispozitivele mobile. Din punct
de vedere comercial există produse sofware GIS profesionale care necesită licență pentru a fi
utilizate sau produse de tip Open Source care sunt utilizate de publicul larg. Spre exemplu software-
ul ArcGIS făcut de ESRI este un produs ce necesită licență pentru utilizare în timp ce GoogleMap
sau GoogleEarth sunt produse care se pot utiliza fără a fi licențiate.
Componenta de date este nucleul oricărui GIS. Există două tipuri principale de date care sunt
folosite într-un GIS. O bază de date geografică („geodatabase”) ce reprezintă o bază de date care
este raportată la locaţii spaţiale. Acestă bază de date lucrează cu date spaţiale în două formate: vector
şi raster. Legate de aceste date există de obicei date convenţionale, cunoscute sub numele de atribute
nonspaţiale sau informaţii adiţionale. Documentaţiile seturilor de date GIS reprezintă metadatele,
care se definesc ca fiind date ce descriu alte date. Ele sunt foarte utile în GIS fiindcă datele spațiale
de tip vector sau raster au descrieri specifice ce decurg din natura lor, cum ar fi: sistemul de
coordonate în care sunt reprezentate datele spațiale, scara de reprezentare, suprafața acoperită de un
pixel etc. dar și descrieri generale precum: proprietarul datelor, momentul când datele au fost create
etc.
Un GIS include mai multe viziuni în ceea ce priveşte lucrul cu informaţia geografică după
cum se poate observa în figura 1:
A. Viziunea bazei de date geografice
1
Un sistem informatic geografic se bazează pe o bază de date spaţială care conţine seturi de
date reprezentând informaţia geografică în termenii unui model de date GIS generic (elemente,
rastere, topologii, reţele etc). In concordanță cu această viziune se are în vedere structurarea
informațiilor în baza de date conform modelului relațional, se definesc entitățile, relațiile, se stabilesc
cheile primare, externe, se indexează tabelele, toate acestea se efectuează printr-o aplicație de sine
stătătoare numită ArcCatalog din pachetul ArcGIS.
B. Viziunea geovizualizării
Un sistem informatic geografic este alcătuit dintr-un set de hărţi inteligente şi alte
instrumente care arată elementele de pe suprafaţa terestră şi relaţiile dintre ele. Diferite tipuri de hărţi
reprezentând informaţia geografică pot fi construite şi folosite ca ferestre în baza de date, pentru a
putea defini interogări, analize şi editări asupra informaţiilor. In cadrul pachetului software ArcGIS
Desktop sunt construite aplicații distincte care realizează vizualizarea, editarea și analiza spațială în
funcție de cerintețe utilizatorului. Astfel, aplicația ArcMap este utilizată când dorim să efectuăm
vizualizare în 2D a hărții, ArcScene pentru vizualizare 3D iar ArcGlobe pentru a vizualiza hărțile pe
globul pamântesc.
C. Viziunea geoprocesării
Un sistem informatic geografic conține un set de instrumente pentru transformarea
informaţiilor, care creează seturi de date noi pe baza celor existente. Aceste funcţii pentru
geoprocesare preiau informaţiile din seturile de date, aplică funcţii analitice şi generează noi seturi de
date ca rezultate. Produsul software ArcGIS permite efectuarea de geoprocesări în diferite modalități
unele adecvate nespecialiștilor în IT până la metode de dezvoltare care necesită cunoștințe solide de
programare. Astfel, prin utilizarea meniurilor sunt accesibile operații de selecție, intersect, clip,
buffer, union, dissolve etc iar prin utilizarea componentei ArcToolbox sunt accesibile operațiile prin
intermediul unor instrumente, modele sau scripturi care se parametrizează pe baza unui șablon de
interfață. Pentru dezvoltatori, se pot scrie scripturi care se execută în mod independent, componenta
prin care se pot introduce comenzi de la tastatură este denumită Python iar limbajul de tip script
folosit de ArcGIS este de asemenea Python. Fluxurile de geoprocesare se pot construi și vizual
folosind componenta ModelBuilder care facilitează gestiunea lor.
Prezentările GIS pot fi făcute utilizând concepte diferite precum:
- prin intermediul GIS desktop;
- utilizând soluţii de tip Web GIS;
- utilizând soluţii de tip Mobile GIS.

Figura 1 – Cele trei viziuni ale unui GIS

GIS Desktop

Pachetele software de tip GIS desktop furnizează un set complet de instrumente pentru:
 Generare de hărţi tematice;
2
 Compoziţii de hărţi profesionale şi tipărire;
 Vizualizare de date incluzând tehnici de zoom;
 Identificare de date spaţiale;
 Interogarea datelor atât pentru date nonspaţiale cât şi pentru cele spaţiale;
 Analize;
 Generare de rapoarte.

Intre aplicaţiile de tip GIS există multiple deosebiri însă ele pot fi divizate în două mari
grupuri: profesionale, care sunt licenţiate şi produse free sau chiar open source. Produsele
profesionale furnizează un domeniu mai mare de funcţionalităţi, suport pentru utilizatori şi
mentenanţă continuă. Ele crează o bază bună de lucru dar pe de altă parte fiecare instanţă are nevoie
de licenţă.

Produse profesionale – ArcGIS de ESRI


ESRI este recunoscut ca fiind liderul mondial în domeniul produselor software GIS.
Arhitectura ArcGIS pune la dispoziţie cadrul necesar pentru implementarea unui GIS pentru un
utlizator sau un grup de utilizatori, ca desktop, în servere, pe Internet sau pe teren. ArcGIS, varianta
ultimă fiind 10, reprezintă o colecţie de produse software necesară pentru a construi un sistem
informatic geografic complet. Este format din (figura 2):
 ArcGIS Desktop – o suită integrată de aplicaţii GIS profesionale
 ArcGIS Engine – componente integrate pentru dezvoltare de aplicaţii GIS de
utilizator
 Server GIS - ArcGIS Server pentru a putea expune hărți pe Web;
 Mobile GIS – pentru dezvoltare de aplicații GIS pe dispozitive mobile.
ArcGIS are la bază o bibliotecă modulară bazată pe componente, care conţine elemente
software GIS, numită ArcOjects. Aceasta include o mare varietate de componente programabile, de
la obiecte simple (de exemplu obiecte de geometrie), până la cele complexe (de exemplu obiectul
hartă, care să interacţioneze cu documentele ArcMap existente), care agregă o funcţionalitate sporită
pentru utilizatori.
ArcGIS Desktop reprezintă o suită integrată de aplicaţii GIS profesionale. Include o serie de
aplicaţii desktop (ArcCatalog, ArcMap, ArcScene şi ArcGlobe) cu componente de interfaţă
utilizator. Folosind aceste aplicaţii şi interfeţe, pot fi efectuate orice sarcini GIS, de la simple la
complexe, incluzând creare de hărţi, analiză geografică, editare şi compliare a datelor, managementul
datelor, vizualizare şi geoprocesare.

3
Figura 2 – Arhitectura ArcGis Desktop
ArcGIS Desktop este disponibil pe trei niveluri funcţionale şi poate fi administrat şi extins
folosind ArcGIS Desktop Developers Kit, care este inclus. Cele trei nivele sunt:
 ArcView pune accentul pe folosirea extinsă a datelor, creare de hărţi şi analiză
 ArcEditor adaugă editare geografică avansată şi creare de date
 ArcInfo este o aplicaţie desktop GIS completă, profesională, conţinând o
funcţionalitate GIS extinsă şi o bogată colecţie de instrumente pentru geoprocesare.
Noi funcţionalităţi pot fi adăugate printr-o serie de extensii provenind atât de la ESRI, cât şi
de la alţi dezvoltatori. Utilizatorii pot crea chiar propriile extensii la ArcGIS Desktop, prin lucrul cu
biblioteca de compoente software ArcObjects şi interfeţe de programare standard, cum ar fi Visual
Basic (VB), .NET, Java şi C++.
ArcMap este aplicaţia principală în ArcGIS Desktop pentru toate sarcinile care includ
folosirea de hărţi, inclusiv cartografie, analiză de hărţi sau editare. ArcMap oferă două tipuri de
vizualizare a unei hărţi: unul pentru datele geografice şi unul pentru aşezarea în pagină. În primul se
lucrează cu niveluri ale informaţiei geografice pentru a simboliza, analiza şi compila seturi de date
GIS. Componenta TOC (Table Of Contents) ajută la organizarea şi controlul proprietăţilor de
desenare ale nivelurilor de date din cadrul de date respectiv. În cel de-al doilea mod de vizualizare se
lucrează cu paginile hărţii, care conţin date geografice şi alte elemente cum ar fi legenda, scara,
punctele cardinale etc. În general, ArcMap este folosit pentru generarea de hărţi pe mai multe pagini
pentru tipărire şi publicare.
ArcCatalog ajută la organizarea şi administrarea tuturor informaţiilor GIS. Dispune de
instrumente pentru: răsfoirea şi cautarea de informaţii geografice, înregistrarea, vizualizarea şi
controlul metadatelor, definirea, exportarea sau importarea de scheme şi desene ale bazelor de date
geografice, căutarea şi descoperirea de date GIS într-o reţea locala sau Internet, administrarea unui
ArcGIS Server.
ArcGIS Desktop oferă un cadru de instrumente pentru geoprocesare, care pot fi rulate în mai
multe feluri, cum ar fi: prin casete de dialog în ArcToolbox, ca module funcționale pentru modelele
din ModelBuilder, sub formă de comenzi în linia de comandă sau ca funcţii în scripturi. Cele două
mari componente ale cadrului de geoprocesare sunt ArcToolbox, o colectie organizată de instrumente
4
pentru geoprocesare şi ModelBuilder, un limbaj de modelare vizual, pentru crearea de fluxuri de
procesare şi scripturi.
ArcToolbox reprezintă o colecţie extinsă de functii pentru geoprocesare (managementul
datelor, conversia datelor, analiză vectorială, geocodificare, analiză statistică etc). Este inclus în
ArcMap şi ArcCatalog şi disponibil pentru toate cele trei niveluri funcţionale. Fiecare nivel include,
în plus, alte funcţii de geoprocesare faţă de precedentul. Interfaţa ModelBuilder oferă un cadru de
modelare grafică pentru proiectarea şi implementarea modelelor de geoprocesare cu instrumente,
scripturi şi date. Modelele sunt diagrame de fluxuri de date care adună împreună o serie de unelte şi
date pentru a crea proceduri avansate.

Geo-Baza de date
Baza de date geografică este modelul de informaţie geografică principal pentru organizarea
datelor în GIS pe niveluri tematice şi reprezentări spaţiale, folosind tehnologia bazelor de date
relaţionale. Ea reprezintă un depozit de date fizice care respectă standardele GIS şi SGBD (sistem de
gestiune a bazelor de date) şi este implementată pentru numeroase sisteme de baze de date personale
sau multiutilizator şi XML. Bazele de date geografice lucrează cu multiple arhitecturi de SGBD, pot
avea diverse mărimi şi un număr variabil de utilizatori. Ele pot varia de la baze de date mici, cu un
singur utilizator, construite pe baza Microsoft Jet Engine, până la baze de date mari împărţite de un
grup de utilizatori, departamente sau companii.
Tipul geo-bazei SGBD Note
de date
Single user - Microsoft Jet Engine  editare de către utilizator unic
Personală (Access)  limită de mărime de 2 GB
 fără suport pentru versiune
Single user - Format propietar,  Poate sa stocheze pană la 250 TB
FileGeodatabase formată din fișiere ce pentru fiecare FeatureClass (strat
pot fi salvate atât pe vectorial)
Windows cât și Linux
Multi-utilizator,  Oracle  necesită ArcSDE
cu versiuni  IBM DB2  editare multiutilizator
 IBM Informix  fluxuri bazate pe versiune
 Microsoft SQL Server  dimensiune şi număr de utilizatori
 PostgreSQL până la limitele SGBDR
Tabelul 1 – Caracteristicele bazelor de date geografice personale şi multiutilizator

Arhitectura unei geo-baze de date – figura 3


Responsabilitatea pentru managementul seturilor de date geografice este împărţită între
software-ul GIS şi cel al SGBD. Anumite aspecte, cum ar fi stocarea pe disc, definirea atributelor,
procesarea interogărilor asociative şi tranzacţiile multiutilizator sunt delegate sistemului de gestiune
a bazelor de date. Aplicaţia GIS este răspunzătoare pentru definirea schemei specifice a SGBD,
folosită pentru a reprezenta diferite seturi de date geografice şi pentru logica specializată pe
domeniu, care menţine integritatea şi utilitatea înregistrărilor componente.
Baza de date geografică este implementată folosind aceeaşi arhitectură de aplicaţie multistrat care se
regăseşte şi în alte SGBD avansate. Obiectele geo-bazei de date sunt păstrate ca rânduri în tabele,
unic determinate, iar comportamentul este furnizat prin logica de aplicaţie a bazei de date geografice.
Nucleul bazei de date geografice este schema standard a bazei de date relationale (o serie de tabele,
tipuri de coloane, indecşi etc). Acest mod de stocare fizică lucrează în concordanţă cu şi este
controlată de un set de obiecte de nivel înalt găzduite de aplicaţie, care poate fi un client sau un
server ArcGIS. Scopul acestor obiecte este de a expune clienţilor un model de informaţii GIS de

5
nivel înalt şi de a stoca implementarea detaliată a acestui model în orice mod de stocare, adecvat, de
exemplu, în tabele standard ale SGBD-ului, în sisteme de fişiere şi ca documente XML.
Toate aplicaţiile ArcGIS interacţionează cu acest model de obiecte generic pentru baze de date şi nu
cu instanţa SGBD bazată pe SQL. Componentele software ale geo-bazei de date implementează
comportamente şi restricţii de integritate implicit în modelul generic şi translatează cereri de date
către nivelul fizic al bazei de date.

Figura 3 – Arhitectura bazei de date


Stocarea în baza de date geografică include atât schema şi baza de reguli pentru fiecare set de
date geografice, cât şi stocarea tabelară simplă a atributelor şi datelor spaţiale. Schema bazei de date
conţine definiţiile, restricţiile de integritate şi comportamentul pentru fiecare set de date geografice.
Acestea includ proprietăţi pentru clasele de caracteristici (”feature class”), topologii, reţele, relaţii,
domenii şi aşa mai departe. O colecţie omogenă de trăsături comune, fiecare având aceeaşi
reprezentare spaţială (cum ar fi punct, linie sau poligon) şi un set comun de coloane atribut poartă
numele de clasă de caracteristici şi este administrată într-o singură tabelă.

6
Baze de date spaţiale
Organizarea și vizualizarea datelor în GIS
In cadrul bazei de date dintr-un GIS, datele spaţiale se memorează astfel încît o tabelă să
conţină o caracteristică spaţială de acelaşi tip. De exemplu, tabela judete stochează judeţele României
iar caracteristica spaţială este de tip poligon. Din punct de vedere vizual, în ArcGIS, datele spaţiale
sunt prezentate prin straturi tematice (layers). In figura 1 se prezintă harta României prin intermediul a
două staturi tematice (drumuri şi judete).

Figura 1 Harta româniei reprezentată prin două straturi tematice


Judeţele au fost etichetate cu simbolurile utilizate la numerele de înmatriculare a autovehiculelor.
In GIS datele se pot vizualiza în mod diferit în funcție de alegerea unei simbologii care se
asociază la unul sau mai multe atribute ale datei spațiale vizualizate. Simbologiile pot fi asociate atât
datelor spațiale de tip vectorial cât și celor de tip raster.
Pentru vectori, simbologiile se pot asocia diferitelor layer-e, de exemplu, se utilizează un
pattern de trasare și o culoare diferită pentru marcarea drumurilor pe hartă față de trasarea râurilor.
Simbologii diferite se pot utiliza pentru a vizualiza datele spațiale ale aceluiași strat tematic în funcție
de valoarea unor atribute care clasifică datele respective. Astfel, daca marcăm localitățile de pe hartă
atunci putem proceda la a simboliza diferit diversele tipuri de localități: capitala țării, reședințele de
județ, municipiile, orașele și satele. Simbologiile care utilizează simboluri graduale se folosesc pentru
a vizualiza date pe hartă în concordanță cu valoarea unui atribut. Din punct de vedere tehnic, fie se
construiesc intervale de valori pe domeniul de valori al unui atribut si se simbolozează datele spațiale
diferit în funcție de apartenența lor la un anumit interval de valori, fie se aplică o proporționalitate în
raport cu valoarea atributului.
De obicei, indicatorii statistici care se vor afișa pe hărți provin din tabele având atribute
nonspațiale și care necesită a fi în prealabil procesați pentru a fi vizualizați. De exemplu, se consideră

1
tabela populatie care are următoarele atribute: simbol judet (sy), populația în orașe mari (cp), populația
în orașe (tp) și cea din mediul rural (rp). Cu alte cuvinte, între cele două tabele (judete si populatie)
există o relație de tip unu la unu. Din datele existente în cadrul tabelei populație se poate calcula total
populație pentru fiecare județ. Astfel, se adaugă un nou câmp de tip long la tabela populatie în care se
vor stoca valorile calculate, ce vor reprezenta totalul populației din județul respectiv. Adăugarea unui
câmp într-o tabelă se face prin execuția intrumentului Add Field din componenta ArcToolbox, mai
precis din Toolboxes/System Toolboxes/Data Management Tools/Fields/Add Field. In interfața
instrumentului se vor completa corespunzător câmpurile adică tabela în care se va adăuga câmpul
(populatie), numele lui (Tpop) și tipul câmpului (LONG). După această operație câmpul Tpop se
adaugă tabelei în nu conține și valorile dorite. Pentru a calcula valorile câmpului se invocă
instrumentul Calculate Field tot din Toolset-ul Fields și se va indica expresia de calcul: Tpop =
cp+tp+rp.
Legarea datelor nonspațiale din tabela populatie de datele spațiale din tabela judete se face prin
operația de joncțiune. Operația de poate efectua fie invocând instrumentul Add Join din
Toolboxes/System Toolboxes/Data Management Tools/Joins fie direct din interfața aplicației (click
dreapta pe judete se alege opțiunea Join and Relates/Join). Indiferent de unde se invocă operația de
joncțiune, trebuie să se precizeze: tabela de bază la care se vor alipi datele celeilalte tabele, în exemplu
nostru judete, câmpul de legatură (sj), tabela cu date nonspațiale (populatie) și câmpul de legatura al
acesteia (sy). După ce s-a facut joncțiunea, prin intermediul tabelei judete se pot accesa și atributele
tabelei populatie care se vor vizualiza pe hartă.
Utilizarea unei simbologii de tip Graduated Colors (gradient de culoare) presupune ca fiecărui
interval de valori, în care se împarte domeniul de valori al indicatorului vizualizat, să-i fie asociată o
culoare cu care se vor colora acele date spațiale pentru care atributul analizat se încadrează în
intervalul respectiv, de exemplu, în figura 17 se prezintă județele României colorate diferit în funcție
de polulație – se iau în considerare 3 intervale de valori;

Figura 17

2
Stabilirea numarului de clase se exprimă prin intermediul unor intervale de valori care pot fi
date manual prin metoda Manual și care presupune ca utilizatorul să indice limitele intervalelor sau ele
se calculează pe baza unor metode predefinite:
• Equal Interval (Intervale egale) presupune divizarea domeniului de valor într-un număr
de intervale de valori care vor avea aceeași dimensiune.
• Quantile (Cuantile) - Această metodă presupune calcularea intervalelor de valori astfel
încât în fiecare clasă să existe același număr de elemente (valori).
• Natural Breaks -Jenks (Intervale naturale) – Acestă metodă folosește gruparea naturală
a datelor, în procesul de creare a claselor. Astfel, intervalele de valori vor fi generate
așa încât valorile dintr-o clasă să aibă o minima variație în timp ce variația maximă se
va manifesta între clasele individuale.
• Standard deviation (Abaterea standard) - Această metodă se bazează pe calculul mediei
datelor, după care se vor genera clasele pe baza valorii abaterii standard de la medie.

O altă modalitate de vizualizare o constituie afișare de puncte având densități diferite, adică în
fiecare poligon sunt afișate un număr de puncte, proporțional, în funcție de valoarea atributului care
urmează a fi vizualizat, de exemplu, în figura 18 se afișează prin simbologia dot density atributul
populație; Instrumentul oferă informații cu privire la proporționalitatea reprezentării, mai precis în
legendă se specifică că un punct corespunde la 10000 de locuitori.

Figura 18
Utilizarea afișării de simboluri de mărimi diferite se face în funcție de valoarea unui atribut și
de o clasificare pe care o realizează utilizatorul pe baza unui număr de intervale de valori; de exemplu
se va afișa prin simboluri de mărimi diferite populația împărțită în trei intervale de valori – figura 19.

3
Figura 19
O altă modalitate, sugestivă, de a afișa date în GIS o constituie utilizarea de grafice asociate
datelor spațiale. Pentru acest lucru, utilizatorul trebuie sa definească atributele care vor fi afișate grafic
și tipul de grafic (pie, bar sau stacked bar). In figura 20 se prezintă o simbologie care prin intermediul
graficelor de tip pie vizualizează proporția populației din orașe mari, orașe și mediul rural pentru
fiecare județ.

4
Figura 20

Afișarea simultană a două atribute prin simbologii diferite este posibilă cu anumite restricții: se
pot reprezenta atribute categoriale pe background-ul harții, prin colorarea diferită a grupelor de
elemente spațiale iar în foreground se pot afișa simboluri de mărimi diferite în funcție de valoarea unui
atribut, după cum aceasta aparține unui interval de valori. Pentru exemplificare, se colorează harta cu
județele în funcție de regiunea de care județul aparține iar pe fiecare județ se vor afișa simboluri de
mărimi diferite în funcție de valoarea populației din județul respectiv. Se vor lua în considerare 3
intervale de valori pentru a clasifica populația, dupa cum se observă în figura 21.

Figura 21

O modalitate complexă de vizualizare a datelor în GIS o constituie cartograma. Cartogramele


sunt reprezentări unice ale spaţiului geografic. O cartogramă este un instrument grafic care descrie
atributele obiectelor geografice. Cartografierea presupune respectarea unor cerinţe precum: păstrarea
formelor, a orientării vecinătăţilor, a datelor şi a modificărilor corespunzătoare. Comunicarea cu
succes a informaţiilor geografice depinde de performanţele cititorului de hărţii, în recunoaştea
formelor obiectelor componente, de precizia estimării acestor forne şi de calitatea legendei proiectate.
Deoarece o cartogramă nu descrie spaţiul geografic, ci mai degrabă modificările în mărimea obiectelor
în funcţie de un anumit atribut, o cartogramă nu este o hartă adevărată. Cartogramele diferă în funcţie
de modul în care se schimbă spaţiul geografic, astfel că unele sunt foarte asemănătoare cu o hartă, iar
altele nu.
Există, în principal, trei tipuri de cartograme, fiecare avand un mod diferit de a afişa atributele
obiectelor geografice: cartograme necontigue, cartograme contigue şi cartograme Dorling.
- O cartogramă necontiguă este cel mai simplu tip de cartogramă. Într-o cartogramă
necontiguă obiectele componente nu trebuie să păstreze legătura cu obiectele adiacente lor.
Această conectivitate se numeşte topologie. Prin ştergerea sau adăugarea unor obiecte în

5
cartogramă, cele din vecinătatea lor pot creşte sau pot scădea în dimensiune, păstrându-se
însă forma;
- Într-o cartogramă contiguă se păstrează topologia adevărată, obiectele rămânând conectate
între ele, dar aceasta provoacă o mare denaturare a formei. În acest caz, cartograful trebuie
să creeze obiecte de dimensiuni potrivite pentru a reprezenta valoarea atributului, dar el
trebuie să păstreze de asemenea şi forma obiectelor cât mai bine posibil, astfel încât
cartograma să poată fi uşor interpretată;
- O cartogramă Dorling nu păstrează nici forma şi nici topologia obiectelor din cadrul
cartogramei, deşi s-a dovedit a fi o metodă foarte eficientă de creare a cartogramelor. Acest
tip de cartogramă a fost denumită după inventatorul său, Danny Dorling de la Universitatea
din Leeds. Pentru a crea o cartogramă Dorling, în loc de schimbarea dimensiunii sau
distorsionarea obiectelor, cartograful va înlocui obiectele cu o formă uniformă, de obicei un
cerc, având dimensiunea corespunzătoare atributelor obiectelor cartogramei (figura 21).

Fig 21 Exemplu de cartograma Dorling

6
Exploatarea datelor spațiale în GIS

Intr-o bază de date spaţială dacă operaţia efectuată implică un atribut spaţial atunci ea se
numeşte operaţie spaţială. Astfel, dacă se realizează reuniunea a două judeţe atunci operaţia de
reuniune este considerată ca fiind spaţială. Manipularea datelor dintr-o bază de date se bazează pe
utilizarea operatorilor.

Selecția datelor în ArcGiS


Principala operație care se efectuează pe date într-o bază de date este cea de selecție. Operația este
utilă atât pentru căutarea de date într-o bază de date cât și pentru construirea de submulțimi de date
care se vor procesa ulterior.

Operația de selecție, în mod vizual, se poate declanșa dintr-un meniu specializat numit Selection.
Ținând cont de natura datelor existente într-un GIS, operația de selecție a fost implementată în două
variante:
- Selecția după atribute non-spațiale
- Selecția după locație

Selecția după atribute non-spațiale se poate declanșa accesând opțiunea “Select By Attributes” din
meniul de selecție.

Accesarea operației de selecție după atribute non-spațiale din interfața ArcMap

Această operație va deschide fereastra utilitarului care permite construirea de interogări tip SQL
folosind atribute non-spațiale, după cum se poate observa și în imaginea de mai jos.

7
Drept exemplu, ne propunem selectarea județelor care au un numar de municipii mai mare strict decât
3.

Fereastra de selecție după atribute non-spațiale

Rezultatul operației de selecție este descris de imaginea de mai jos.

De reținut că operația de selecție presupune marcarea acelor tupluri care satisfac condiția de selecție.
Astfel, elementele selectate sunt marcate pe harta dar și în tabela de date după cum se observă în
figurile următoare.

8
Rezultatul selecției județelor care au cel puțin 4 municipii

Selecția după caracteristici non-spațiale se poate realiza și pe seturi de date care nu au atribut spațial.

Spre exemplu, având tabela de date non-spațiale care conține informații despre populația fiecărui
județ, se urmărește selectarea înregistrărilor care au populația totală mai mare de 500.000.

Selecția în tabela de date non-spațiale a județelor cu populație mai mare de 500.000

9
Rezultatul operației se poate observa în imaginea de mai jos. Înregistrările care au îndeplinit criteriile
de selecție sunt evidențiate cu fundal albastru deschis.
În cazul de față, operația de selecție nu are efect asupra vreunui strat tematic din compoziția de hartă.

Rezultatul selecției județelor cu populație mai mare de 500.000

Operațiile de selecție, fie după atribute non-spațiale, fie după locație, pot fi declanșate și din linie de
comandă folosind instrucțiuni specifice.

Selecția din linie de comandă


Dorim să selectăm județele al căror nume începe cu litera “t”
>>> import arcpy
>>> arcpy.SelectLayerByAttribute_management
("judete", "NEW_SELECTION", "nume LIKE 't'")
<Result 'judete'>

Prima comandă încarcă în sesiunea de lucru biblioteca arcpy necesară accesării tuturor instrumentelor
de geoprocesare. Apelarea acestei comenzi este necesară o singură dată pe sesiunea de lucru.
Comanda de selecție după atribute non-spațiale primește ca parametri în ordine: caracteristica din care
se face selecția, tipul selecției (nouă, adăugare la selecția curentă, selecție din selecția curentă,
eliminare din selecția curentă, deselectarea elementelor selectate) și clauza WHERE care indică
condiția de selecție.

10
Rezultatul selecției județelor al căror nume începe cu litera “T”

Selecția după locație


Selecția după locație se aplică doar entităților care conțin date spațiale. Asemeni operației de selecție
după atribute, selecția după locație poate fi invocată atât din interfața vizuală cât și din linie de
comandă.

Criteriile după care se efectuează selecția după locație se bazează pe utilizarea unui set de operatori
spațiali.
Utilizarea operatorului de intersecție.
Exemplu: Se dorește selectarea județelor prin care trece râul Olt.

Fereastra de selecție după locație – accesarea operației din interfața vizuală

11
Selecția după locație din linie de comandă
>>> arcpy.SelectLayerByAttribute_management("rauri","NEW_SELECTION","den='olt'")
<Result 'rauri'>
>>> arcpy.SelectLayerByLocation_management("judete","INTERSECT","rauri","",
"NEW_SELECTION")
<Result 'judete'>

În linie de comandă, parametrii din paranteză se referă la caracteristica din care se face selecția,
operatorul spațial, caracteristica de referință, parametrii specifici operatorului respectiv și tipul de
selecție.

Rezultatul operației executate atât din interfața vizuală cât și din linie de comandă, este același și poate
fi observat în imaginea de mai jos.

Rezultatul selecției județelor prin care trece râul Olt

Utilizarea operatorului de vecinătate (boundary touches)


Exemplu în linie de comandă: Județele cu care se învecinează județul Brașov
>>> arcpy.SelectLayerByAttribute_management("judete", "NEW_SELECTION",
"nume='brasov'")
<Result 'judete'>
>>> arcpy.SelectLayerByLocation_management("judete", "BOUNDARY_TOUCHES","judete",
"", "NEW_SELECTION")
<Result 'judete'>

12
Rezultatul selecției județelor care se învecinează cu județul Brașov

Utilizarea operatorului de proximitate (are within a distance)


Exemplu în interfață: Localitățile care se află la maximum 40Km față de municipiul Cluj-Napoca
(selectat în prealabil).

Rezultatul selecției localităților care se află la maximum 40Km de municipiul Cluj-Napoca

13
Utilizarea operatorului de incluziune în întregime (are completely within)
Exemplu în interfață: Din selecția anterioară, se urmărește păstrarea doar a localităților care se află în
județul Cluj (selectat în prealabil).

Rezultatul selecției localităților care se află la maximum 40Km de municipiul Cluj-Napoca și se află în
județul Cluj

Deselectarea elementelor selectate.


Din interfață, apasând butonul Clear Selection, din TooBar-ul Tools se vor deselecta toate selecțiile
curente pentru toate caracteristicile spațiale existente în hartă.

Tot din interfață, deselectarea elementelor selectate se poate face discriminatoriu pentru fiecare
caracteristică în parte folosind meniul contextual din secțiunea “Table of Contents”, după cum se
prezintă în imaginea de mai jos.

14
Accesarea operației de deselectare a elementelor selectate din interfața vizuală

Accesarea operației de deselectare a elementelor selectate din stratul tematic localitati, din linie de
comandă:
>>> arcpy.SelectLayerByAttribute_management("localitati","CLEAR_SELECTION")
<Result 'localitati'>

Din linie de comandă, deselectarea elementelor selectate se face pentru fiecare caracteristică în parte,
indicată prin primul parametru din comandă.

Operația de selecție definește setul de date asupra cărora se vor efectua operațiile ulterioare de
geoprocesare după cum s-a observat și în exemplele anterioare.

Modificarea elementelor din selecția curentă


Elementele selectate la un moment dat se pot modifica în sensul că se mai pot adăuga celor selectate și
alte elemente sau se pot deselecta anumite elemente din selecție.
Exemplu în linie de comandă: selectarea localităților din județul Hunedoara (selectat în prealabil).
Apoi extragerea din selecție a localităților ce au tipul = 5 adică a satelor din județul respectiv.
>>> arcpy.SelectLayerByLocation_management("localitati","WITHIN","judete")
<Result 'localitati'>
>>> arcpy.SelectLayerByAttribute_management("localitati","REMOVE_FROM_SELECTION",
"tip=5")
<Result 'localitati'>

15
Rezultatul selecției localităților de tip resedintă de județ, municipii sau orașe din județul Hunedoara

Crearea unui strat tematic nou pe baza selecției curente.


După cum s-a putut observa, operația de selecție realizează doar marcarea unui set de tupluri asupra
cărora ulterior se pot efectua alte operații de geoprocesare. Dacă se dorește ca elementele selectate să
formeze un nou strat tematic, ele se pot salva într-un nou layer care se va adăuga la cele existente în
hartă. Operația poate fi invocată atât din interfață cât și din linie de comandă, după cum se poate vedea
mai jos.

16
Accesarea operației de creare a unui strat tematic nou pe baza selecției curente

Crearea unui strat tematic nou pe baza selecției curente, din stratul tematic localități, din linie de
comandă:
>>> arcpy.MakeFeatureLayer_management("localitati","orase_si_municipii_din_HD")
<Result 'orase_si_municipii_din_HD'>

Noul strat tematic este stocat în memorie adică el nu este slavat fizic și în baza de date. Pentru ca
layer-ul să fie slavat și în baza de date atunci se execută comanda CopyFeatures:
>>> arcpy.CopyFeatures_management("orase_si_municipii_din_HD",
"oras_si_municipii_din_Hunedoara")
<Result 'C:\\Documents and Settings\\Administrator\\My
Documents\\ArcGIS\\Default.gdb\\oras_si_municipii_din_Hunedoara'>

Când rezultatul se stochează pe disc și nu se menționează explicit unde se va memora rezultatul atunci
el se va stoca în Default.gdb. Dacă se dorește stocarea într-o altă locație atunci fie se specifică explicit
acest lucru în operație fie se setează proprietatea workspace și se menționează calea către geobaza de
date (bd_ro.mdb):
>>> arcpy.env.workspace = "d:/…/bd_ro.mdb"
Odată ce s-a setat proprietatea workspace toate comenzile vor stoca rezultatele în baza de date
indicată.
De utilitate pentru lucrul cu seturi de date temporare este și operația de ștergere a elementelor
selectate dintr-o caracteristică.
Din interfață ea se invocă din componeta ArcToolbox, după cum urmează:

Operația de ștergere a caracteristilor selectate, din linie de comandă:


>>> arcpy.DeleteFeatures_management("oras_si_municipii_din_Hunedoara")
<Result 'oras_si_municipii_din_Hunedoara'>

17
Instrumente de geoprocesare
Instrumentele de geoprocesare disponibile în cadrul suitei ArcGIS pot fi accesate prin mai multe căi.
- Direct din interfața aplicației, în cadrul meniului Geoprocessing, sau din secțiunea
ArcToolbox
- Prin comenzi date prin componenta Python
- Prin intermediul unor scripturi Python de sine stătătoare
- Prin execuția unor modele construite cu ajutorul componentei Model Builder

InterfațaArcMap – marcaje cu roșu ale metodelor de accesare instrumente geoprocesare

În continuare vor fi prezentate câteva operații elementare folosind primele două metode.

Intersect
Operația primește ca date de intrare una sau mai multe caracteristici cu geometrie nu obligatoriu de
același tip (poligon, polilinie, punct) și returnează o nouă caracteristică (care poate avea și o geometrie
impusă de utilizator), în care se stochează rezultatul intersecției spațiale dintre datele de intrare.

Operația este disponibilă prin opțiunea Intersect a meniului Geoprocessing, sau sub forma unui
operator spațial (invocat de selecția prin locație) cât și ca instrument de sine stătător în ArcToolbox.

Spre deosebire de intersecția realizată prin comanda de selecție prin locație, operația ca instrument
generează fizic o nouă caracteristică. De asemenea, instrumentul are o generalitate mai mare pentru că
permite, ca date de intrare, mai multe straturi tematice, în cazul operatorului de la selecție fiind
posibile doar două.

Exemplu de utilizare

18
Având un set de date care cuprinde râurile si drumurile publice din România, se dorește obținerea unui
strat tematic distinct care să conțină podurile urmare a intersecției geometrice dintre cele 2 straturi
tematice, date de intrare.

Drumuri și râuri – date de intrare

Folosind meniul Geoprocessing alegem operația Intersect, sau din secțiunea ArcToolbox > Analysis
Tools > Overlay > Intersect

Ca date de intrare folosim stratul de drumuri respectiv cel de râuri.


Ca date de ieșire indicăm calea și numele noii caracteristici.

Instrumentul mai pune la dispoziție și alți parametri opționali:


- JoinAttributes. Se referă la modul în care caracteristica de ieșire va moșteni date non-
spațiale din datele de intrare
- XY Tollerance. Se referă la toleranța utilizata în validarea intersecției
- Output Type. Se poate impune tipul geometriei caracteristicii de ieșire

19
Accesarea operației Intersect din interfața ArcMap

Utilizarea operației Intersect din linie de comandă:


În fereastra de comenzi Python se vor rula următoarele comenzi:

>>> import arcpy


>>> arcpy.Intersect_analysis (["drumuri","rauri"], "poduri","","","POINT")

Prima comandă este necesară pentru încărcarea în sesiunea de lucru a bibliotecii arcpy, care ne
permite accesarea tuturor instrumentelor de geoprocesare puse la dispoziție de ArcGIS.

A doua comandă rulează operația Intersect. Parametrii din paranteze sunt separați prin virgulă și au
aceeași ordine precum în fereastra utilizată anterior și anume:
- Caracteristicile de intrare
- Caracteristica de ieșire
- Opțiunea JoinAttributes
- Toleranța la intersecție
- Tipul geometriei caracteristicii de ieșire

Rezultatul operației, atât din interfața ArcMap cât și din linie de comandă, este prezentat mai jos.

20
Rezultatul operației Intersect

Union
Operația primește ca date de intrare una sau mai multe caracteristici cu geometrie de același tip și
returnează o nouă caracteristică, în care se stochează rezultatul reuniunii geometrice, la nivel de date,
dintre caracteristicile de intrare.

Exemplu de utilizare
Având ca date de intrare o selecție a regiunii de dezvoltare NE din stratul tematic “regiuni”, și o
selecție a județelor Vrancea și Galați din stratul tematic ”județe”, se dorește obținerea unui strat
tematic distinct care să conțină într-o reuniune geometrică și la nivel de date, regiunea istorică
Moldova.

Folosind meniul Geoprocessing alegem operația Union, sau din secțiunea ArcToolbox > Analysis
Tools > Overlay > Union

Ca date de intrare folosim stratul de regiuni respectiv cel de județe.


Ca date de ieșire indicăm calea și numele noii caracteristici.

Instrumentul mai pune la dispoziție și alți parametri opționali:


- JoinAttributes. Se referă la modul în care caracteristica de ieșire va moșteni date non-
spațiale din datele de intrare
- XY Tolerance – toleranța pentru calculul geometric
- Gaps allowed – opțiune pentru ignorarea poligoanelor vide rezultate a reuniunii geometrice

21
Regiunea NE și județele Vrancea și Galați – date de intrare

Accesarea operației Union din interfața ArcMap

Utilizarea operației Union din linie de comandă


În fereastra de comenzi Python se vor rula următoarele comenzi:
>>> import arcpy

22
>>> arcpy.SelectLayerByAttribute_management("regiuni", "NEW_SELECTION",
"nume='North East'")
<Result 'regiuni'>
>>> arcpy.SelectLayerByAttribute_management("judete", "ADD_TO_SELECTION",
"nume='Vrancea' or nume='Galati'")
<Result 'judete'>
>>> arcpy.Union_analysis(["[judete","regiuni"],"moldova","ALL")
<Result 'C:\\curs\\bd_ro.mdb\\moldova'>

Rezultatul operației Union

Merge
Operația primește ca parametri de intrare unul sau mai multe seturi de date, de același tip și returnează
o nouă caracteristică, în care se stochează rezultatul reuniunii.

Exemplu de utilizare
Având ca date de intrare o selecție a județelor Vrancea și Galați și regiunea NE, se dorește construirea
unui strat tematic distinct care să conțină poligoanele care construiesc regiunea Moldova și setul de
date non-spațiale din caracteristicile de intrare.

Folosind meniul Geoprocessing alegem operația Merge, sau din secțiunea ArcToolbox > Data
Management Tools > General > Merge

Setul de date de intrare va fi constituit din elementele selectate din straturile tematice județe respectiv
regiuni.

Ca parametri opționali, se pot alege, altera sau șterge câmpurile din setul de date rezultat al operației.

23
Selecție cu regiunea NE și județele Vrancea și Galați – date de intrare

Accesarea operației Merge din interfața ArcMap

Utilizarea operației Merge din linie de comandă:


În fereastra de comenzi Python se vor rula următoarele comenzi:

>>> import arcpy


>>> arcpy.SelectLayerByAttribute_management("regiuni", "NEW_SELECTION",
"nume='North East'")

24
<Result 'regiuni'>
>>> arcpy.SelectLayerByAttribute_management("judete", "ADD_TO_SELECTION",
"nume='Vrancea' or nume='Galati'")
<Result 'judete'>
>>> arcpy.Merge_management(["judete","regiuni"],"moldova")
<Result 'C:\\curs\\bd_ro.mdb\\moldova'>

Rezultatul operației Merge


In cazul acestei operații, spre deosebire de union, dacă există atribute cu aceleași nume ele sunt
contopite într-un singur atribut, cu numele respectiv, în tabela rezultat. De exemplu, câmpul nume este
prezent și în tabela regiuni și în judete însă în rezultat se păstrează doar o singură dată câmpul nume în
care se vor stoca numele elementelor stocate.

Dissolve
Operația primește ca date o caracteristică și returnează o nouă caracteristică, în care se stochează
rezultatul agregării geometrice și la nivel de date dintre caracteristicile de intrare, după un criteriu
prestabilit (opțional).
Agregarea se face astfel:
- Dacă nu există nici un criteriu de agregare indicat și nici nu sunt elemente selectate atunci
se agregă toate elementele și rezultatul va fi un nou element;
- Dacă nu există nici un criteriu de agregare indicat dar sunt elemente selectate atunci,
elementele selectate vor fi agregate într-un nou element;
- Dacă se indică un criteriu de agregare atunci agregarea se va face pentru toate elementele
care îndeplinesc criteriul și astfel pot fi generate mai multe elemente în rezultat.
Criteriul de agregare se indică prin marcarea câmpului (câmpurilor) pe baza căruia se face agregarea.
Astfel, se generează elemente prin agregarea acelor tupluri care au aceeași valoare în câmpul indicat.

Exemplu de utilizare 1

25
Având ca date de intrare o selecție a județelor din regiunea Moldova, se dorește construirea unui strat
tematic distinct care să descrie într-un singur poligon regiunea Moldova.

Folosind meniul Geoprocessing alegem operația Dissolve, sau din secțiunea ArcToolbox > Data
Management Tools > Generalization > Dissolve

Selecție cu județele regiunii istorice Moldova – date de intrare

Accesarea operației Dissolve din interfața ArcMap

26
Utilizarea operației Dissolve din linie de comandă:
În fereastra de comenzi Python se vor rula următoarele comenzi:

>>> arcpy.SelectLayerByAttribute_management("judete","NEW_SELECTION", "[sr]='ne'")


<Result 'judete'>
>>> arcpy.SelectLayerByAttribute_management("judete","ADD_TO_SELECTION",
"[nume]='Vrancea' or [nume]='Galati'")
<Result 'judete'>
>>> arcpy.Dissolve_management("judete","moldova")
<Result 'C:\\curs\\bd_ro.mdb\\moldova'>

Rezultatul operației Dissolve


Unde sr este câmpul care stochează simbolul regiunii de care aparține județul respectiv.
Exemplu de utilizare 2
Având ca date de intrare stratul tematic judete, pe baza câmpului de agregare sr, se dorește construirea
unui strat tematic distinct care să conțină regiunile de dezvoltare din România. In acest caz, vor rezulta
un numă de poligoane egal cu numărul de valori unice al câmpului sr. Un element spațial (poligon) se
va construi prin agregarea poligoanelor corespunzătoare tuplurilor care au aceeași valoare pentru
câmpul sr.

27
Tabelul de atribute pentru stratul tematic județe

Fereastra operației Dissolve, cu opțiune pentru câmpul Dissolve_Field

28
Rezultatul operației Dissolve dupa câmpul simbol regiune

Buffer
Operația primește ca date de intrare o caracteristică cu orice tip de geometrie (punct, polilinie sau
polygon) și returnează o nouă caracteristică de tip poligon, care înconjoară datele de intrare la o
distanță stabilită de utilizator.

Exemplu de utilizare:
După selecţia rîului Olt se poate construi regiunea din jurul lui construind un buffer. Operaţia de
construire a buffer-ului se declanşează din componenta ArcToolbox >> Analysis Tool >> Proximity
>> Buffer, setarea parametrilor se face prin dialogul din figura de mai jos.

Dialog pentru setarea parametrilor operaţiei de creare a unui buffer


Principalii parametri au semnificaţiile:

29
- Input Features - caracteristica spaţială în jurul căreia se crează buffer-ul, în exemplu este
vorba de riuri, mai precis riul Olt anterior selectat;
- Output Feature Class - denumirea caracteristicii spaţiale de ieşire, implicit este
riuri_Buffer, adică bufferul se va constitui într-o caracteristică spaţială de sine stătătoare;
- Linear unit - este parametrul prin care se stabileşte distanţa la care se va trasa buffer-ul în
raport cu caracteristica spaţială de intrare; pe de altă parte, tot aici se poate stabili şi
unitatea de măsură a distanţei.
Rezultatul operaţiei se poate observa în figura 13. Astfel, stratul tematic riuri_Buffer defineşte o
suprafaţă, construită în jurului rîului Olt la o distanţă de 2 km. Obţinerea regiunii (a buffer-ului) se
poate face şi prin comanda:
>>> arcpy.Buffer_analysis("rauri", "D:/test_bdsa/bd1.mdb/riuri_Buffer", "2000
Meters", "FULL", "ROUND", "ALL")
Parametrul încărcat cu valoarea FULL indică faptul că buffer-ul va fi construit de jur împrejurul râului;
ROUND indică faptul că la extremitățile vor fi rotunjite; iar ALL că toate poligoanele constituite se
vor agrega formând un singur poligon rezultat.

Figura 13 Buffer aplicat în jurul rîului Olt

Operația de decupare (Clip)


Operaţia de decupare (Clip) realizează decuparea unei caracteristici spaţiale în funcţie de spaţiul
ocupat de o altă caracteristică spaţială.

Exemplu de utilizare:
Se doreşte crearea unei date spaţiale care să conţină râurile care trec prin judeţul Prahova atunci se pot
decupa râurile în funcţie de poligonul aferent judeţului Prahova. Mai întâi se selectează judeţul
Prahova după care se selectează din ArcToolbox >> Analysis Tools >> Extract >>Clip şi apare un

30
dialog care se va completa conform figurii de mai jos. Astfel, se indică caracteristica ce se va decupa,
caracteristica pe baza căreia se face decuparea și unde se va stoca rezultatul.

Operaţia Clip

Rezultatul operaţiei se ilustrează în figura de mai jos.

Rezultatul operaţiei de decupare

Operaţia se poate efectua şi prin executarea comenzii:


>>> arcpy.Clip_analysis("rauri", "jud", "D:/test_bdsa/bd1.mdb/riuri_PH")

31
Geoprocesarea prin componenta ModelBuilder din ArcGIS

După cum s-a putut observa până acum s-au efectuat operații de geoprocesare elementare
declanșate fie prin utilizarea meniurilor, a instrumentelor din ArcToolbox sau scrierea de comenzi. In
vederea realizării de procesări complexe asupra datelor, operațiile trebuie înlănțuite într-un flux de
procesare care să fie ulterior executat unitar. Componenta ModelBuilder facilitează construirea de
fluxuri de procesare a datelor pornind de la o schema descrisă în mod vizual, ce combină operații
elementare din ArcToolbox dar și scripturi. Această componentă se identifică în ArcGIS sub forma
unei ferestre de lucru care se invocă de la meniul Geoprocessing / ModelBuilder. Un astfel de model
trebuie stocat într-o componentă specifică din GIS și anume într-un Toolbox. Un Toolbox se poate
construi astfel: în fereastra Catalog, în locația dorită, se dă click dreapta, se alege din meniul
contextual New / Toolbox ca în figura x11.

Figura x.11 Construirea unui nou Toolbox


Astfel se construiește elementul Toolbox după care pe acel element se dă iar click dreapta și se alege
Model pentru a apare fereastra componentei și evident pentru a construi modelul. Numele implicit este
Model însă el se poate schimba prin redenumire.
Pentru exemplificare, se va construi un model care realizează selecția drumului E85 pe hartă.
Pentru acest lucru se va alege operația de selecție (Select Layer by Attribute) din System Toolboxes și
prin drag and drop se trage instrumentul pe fereastra componentei ModelBuilder ca în figura x.12.

32
Figura x.12 Includerea unui element in ModelBuilder
Se observă că elementele sunt necolorate ceea ce sugerează utilizatorului că modelul nu poate fi
executat în această stare. Pentru a putea fi rulat, instrumentul trebuie deschis pentru a i se specifica
parametrii de intrare. Acest lucru de face dând click dreapta pe instrumentul propriu-zis și apoi se
alege Open (figura x.12). După efectuarea acestei operații apare fereastra de interacțiune a
instrumentului și utilizatorul introduce parametrii de selecție doriți (alege stratul tematic drumuri și
indică clauza where de tipul nume2 = ‘E85’ după care confirmă operația apăsând OK. Operația se va
vizualiza ca în figura x.13.

Figura x.13 Operația parametrizată corespunzător


Se observă că:
- Elementele au fost colorate în diferite culori (albastru pentru parametri de intrare ai
modelului, maro pentru operație iar verde pentru date de ieșire din operație);
- Datele se figurează în forme ovale în timp ce operația se figurează printr-un dreptunghi;
- Se observă că elementele sunt interconectate prin săgeți ceea ce indică un flux.
Modelul astfel construit se poate executa apasând butonul Run de pe toolbar-ul ferestrei sau din meniul
Model / Run. După execuția modelului pe hartă nu se observă nimic însă după un refresh la fereastra
de vizualizare a hărții (de la Toolbar-ul Tools se apasă pe butonul Full Extent) drumul E85 apare
selectat. Dacă se dorește ca rezultatul să fie vizibil pe hartă atunci în fereastra modelului se selectează
rezultatul (drumuri (2)) se dă click dreapta și se bifează opțiunea Add to Display (figura x.14) iar după
execuția modelului, pe hartă va apare direct rezultatul după cum se poate observa în figura x.15.

33
Figura x.14 Setarea opțiunii de afișare a rezultatului

Figura x.15 Rezultatul afișat pe hartă

După execuția modelului se observă că elementele executate (operațiile și rezultatele) sunt afișate cu
un efect de umbrire ceea ce denotă că operațiile tocmai au fost executate (figura x.15). După execuția
cu succes a modelului se închide fereastra componentei, se salvează modelul și acesta va apare în
toolbox-ul în care acesta a fost creat. Un astfel de model se execută ori de câte ori este nevoie dând
dublu click pe el. Dacă facem acest lucru pe modelul nostru va apare o fereastra ca în figura x.16 în
care ni se precizează că modelul nu are parametri și dacă se apasă pe OK modelul se execută. De
fiecare dată pe hartă se va selecta același lucru (drumul E85).

Figura x.16 Fereastra de interfață a modelului

34
Pentru a da mai multă generalitate unui model acesta se parametrizează astfel încât rezultatul
să fie diferit în funcție de valorile parametrilor de intrare. De exemplu, în cazul modelului nostru,
dorim ca stratul tematic din care se vor selecta caracteristici să poată fi ales din cele existente în hartă
și în plus, expresia de selecție a caracteristicilor să poată fi introdusă tot ca parametru. Datele care vor
fi asumate ca parametri ai modelului se disting prin faptul că au înscrisă litera P în fluxul modelului ca
în figura x.17. Modelul se editează în cadrul componentei ModelBuilder prin selecția lui din
componenta Toolbox după care se dă click dreapta și se alege opțiunea Edit. O dată din model se
parametrizează prin selecția ei în cadrul modelului după care se dă click dreapta și se bifează opțiunea
Model Parameter – figura x.17.

Figura x.17 Parametru al modelului


Fiind vorba de parametrizarea stratului tematic, utilizatorul prin intermediul interfeței va putea alege
stratul tematic pe care dorește să-l proceseze. Pentru ca în interfață comentariul parametrului să fie în
concordanță cu semnificația lui se va redenumi elementul prin selecția lui și apoi click dreapta și se
selectează opțiunea Rename. Făcând această operație se va putea introduce noua denumire (figura
x.18) care va apre în interfața modelului.

Figura x.18 Fereastra de redenumire a parametrului


Pe lângă transformarea unor date de intrare în parametri ai modelului se mai pot defini și variabile
independente care joacă rol de parametri și care vor fi utilizate de către instrumentele din model. In
cazul nostru dacă utilizatorul poate alege stratul tematic atunci condiția de selecție trebuie
parametrizată pentru că e puțin probabil ca ea să aibă sens în noul context. O variabilă independentă se
include în model de la meniul Insert / Create Variable... după care va apare o fereastră ce-i permite
utilizatorului să selecteze tipul variabilei; în cazul nostru se va alege SQL Expression. Legarea
variabilei de instrument se va face selectând instrumentul dând click dreapta și Open. In fereastra care
s-a deschis se va alege la condiție (Expression) numele variabilei care tocmai a fost adăugată la model
și anume SQL Expression, ca în figura x.19.

35
Figura x.19 Substituirea expresiei de selecție din variabilă
După efectuarea acestei operații se observă în model că variabila s-a conectat la instrument, ea va fi
indicată ulterior ca fiind parametru și va apare necolorată pentru că nu este inițializată – adică expresia
este vidă. Pentru a verifica corectitudinea modelului variabila trebuie inițializată (click dreapta / Open)
însă dacă modelul se execută din toolbox și nu din componenta ModelBuilder parametrii apar în
interfață și pot fi setați corespunzător (figura x.20).

Figura x.20 Interfața modelului după parametrizare


Se observă că după parametrizare utilizatorul poate indica stratul tematic care va intra în procesare iar
constructorul de expresii SQL va utiliza în interfața sa, pentru a genera expresia de selecție, câmpurile
stratului tematic ales. In mod evident, utilizatorul poate folosi modelul pentru a selecta date din diferite
straturi tematice indicând și condiția de selecție.

Inlănțuirea operațiilor într-un flux de geoprocesare presupune ca operațiile să se bazeze și pe


rezultatele operațiilor anterioare, cu alte cuvinte datele de intrare pentru o operație sunt datele de ieșire
ale unei operații anterioare. Pentru exemplificare, să presupunem că dorim să construim un buffer în
jurul elementelor spațiale selectate la o distanță de 5 km. Operația de bufferizare va avea ca date de
intrare rezultatul operației de selecție și distanța. Pentru distanță se va construi o variabilă de tip Long
în care utilizatorul va introduce distanța exprimată în metri, de exemplu 5000, variabila va fi

36
redenumită Dist. Se deschide instrumentul de construire a buffer-ului și se introduc parametrii
corespunzători, de exemplu pentru caracteristica care va fi buffer-izată se va introduce drumuri adica
ceea ce a rezultat din operația de selecție și se află în model. După ce se încarcă cu date instrumentul
buffer se observă că variabila Dist nu este conectată la nici o operație. Conectarea se face cu
instrumentul de conectare Connect din toolbar-ul componentei. Cu ajutorul instrumentului se
conectează variabila Dist cu instrumentul Buffer și apare un meniu contextual din care utilizatorul va
selecta parametrul ce va fi substituit prin variabila creată, în exemplul nostru Distance, ca în figura
x.21.

Figura x.20 Conectarea variabilei la instrument


Se mai observă în figura x.20 că variabilele independente sunt colorate cu albastru mai deschis dacă
sunt inițializate cu valori. Până acum, în acest exemplu, au fost definiți parametri de intrare care s-au
mapat pe datele de intrare cerute de operație cât și pe baza unor variabile independente create în model
(de exemplu SQL Expression sau Dist).
Unui model i se pot atașa și parametri de ieșire. Acest lucru este util când dorim ca rezultatului
final sa-i asociem un nume, să indicăm workspace-ul unde va fi stocat iar el va fi adăugat la
documentul hartă ca strat tematic în mod implicit. Din punct de vedere tehnic, acest lucru se realizează
prin indicarea variabilei rezultat drept parametru. In cazul nostru variabila rezultat al operației Buffer
este element_buf și aceasta devine parametru prin bifarea opțiunii Model Parameter. Pentru a
generaliza modelul, se redenumește variabila element_buf în Rezultat. Prin rularea modelului astfel
construit direct din Toolbox se va afișa fereastra de interacțiune cu utilizatorul ca în figura x.21.

37
Figura x.21 Interfața modelului completată cu date
Din figura x.21 se observă că se rulează modelul pentru a realiza un buffer în jurul râului Arges
la o distanță de 7 km în jurul lui. In figura x.22 se observă că rularea modelului a efectuat selecția
râului Arges, construirea bufferului și includerea lui la documentul hartă sub numele indicat în
interfață.

Figura x.22 Execuția modelului


Stabilirea precondițiilor în fluxul de geoprocesare se realizează când dorim ca o operație să se
desfășoare în mod explicit după ce s-a obținut un anumit rezultat intermediar. Acest lucru se realizează
prin conectarea explicită a elementelor din flux după care se indică tipul de conexiune (Precondition).
De exemplu, dacă dorim ca după efectuarea buffer-ului elementele selectate pe hartă să fie deselectate
atunci se va face pe stratul tematic respectiv o selecție prin atribute iar la metoda de selectie se va
preciza CLEAR_SELECTION. Punând această operație în model se crează practic două fluxuri

38
paralele în sensul că această operație are ca dată de intrare stratul tematic inițial și rezultatul nu se mai
leagă de nici o operație. De aceea, vrem să ne asigurăm că operația de deselecție se face după
construirea buffer-ului, lucru care se realizează prin conexiunea explicită dintre Rezultat și cea de-a
doua selecție care are doar rolul de a deselecta elementele selectate, ca în figura x.23. Când se face
conexiunea se va alege din meniul contextual opțiunea Precondition iar în Model Builder acest lucru
se va indica printr-o săgeată punctată după cum se observă în figura x.23.

Figura x.23 Exemplu de precondiție

Construirea de scripturi Python și adăugarea lor în modele de geoprocesare


Construirea unui script Python se face dând click dreapta pe Toolbox-ul în care acesta se va stoca apoi
Add/Script. Numele fișierului în care se va stoca scriptul trebuie să aibă extensia py. Scriptul se scrie
cu editorul de texte după care se rulează ca un instrument sau un model obișnuit. Tipul modulului este
indicat printr-un icon distinct, astfel pentru: instrument , model și script . Scripturilor li se
pot asocia parametri, acest lucru se face dând click dreapta pe script, se alege Propreties și se alege
tab-ul Parameters. In fereastra care apare în acest context se pot adăuga parametrii scriptului care vor
forma o listă de parametri, pentru fiecare se indică numele care va apare ca si comentariu în interfață,
tipul parametrului, direcția (de intrare sau de ieșire) precum și alte caracteristici. Preluarea în script a
valorii parametrilor de intrare se face cu funcții de tipul arcpy.GetParameter. O astfel de funcție
primește ca parametru indexul parametrului scriptului (primul parametru se află pe poziția 0). Pentru
cei de ieșire se setează valoarea în cadrul scriptului cu funcții de tipul arcpy.SetParameter. O astfel de
funcție primește indexul și valoarea parametrului.
In vederea exemplificării celor menționate se va scrie un script care, pe baza unei simbologii de tip
Graduated Colors colorează poligoanele unui layer după un camp numeric, din tabela respectivă.
Scriptul va returna un rezultat de tip boolean care va fi True daca layerul a fost simbolizat
corespunzător, respectiv False în cealaltă situație. Pentru a realiza acest lucru se procedează la a
simboliza stratul tematic judete după tipul de simbologie mai sus menționat; astfel, se va indica un
camp numeric pentru simbolizare, numarul de clase și ceea ce este important de precizat este rampa de
culori pentru că ea nu se mai poate schimba din cod. După simbolizare, se va salva explicit stratul
tematic ca layer într-un fișier cu extensia lyr (simbol_GC.lyr).
Scriptul, în fapt, realizează asocierea acestei simbologii (pe care o preia din fișierul simbol_GC.lyr)
unui strat tematic de același tip spațial pentru care se va menționa: layerul, câmpul de simbolizat și
numărul de clase. Parametrii scriptului sunt prezentați în figura x.24 și se referă la:

39
Figura x.24 Parametrii scriptului
- Alege poligon de tip Feature Layer care semnifică layerul ce se va simboliza – parametru
de intrare;
- Campul de tip Field care specifică câmpul care se va reprezenta prin simbologie –
parametru de intrare;
- Nr clase de tip Long reprezinta numarul de intervale de valori in care se va descompune
domeniul de valori al campului indicat prin parametrul Campul – parametru de intrare;
- Rez de tip Boolean ce indică dacă layer-ul a fost simbolizat sau nu – parametru de ieșire;

import arcpy
num_jud = arcpy.GetParameterAsText(0) #preluare parametru de intrare (stratul tematic)
num_camp = arcpy.GetParameterAsText(1) #preluare parametru de intrare (numele campului)
nrcl = arcpy.GetParameter(2) #preluare parametru de intrare (numarul de clase)
mxd = arcpy.mapping.MapDocument("CURRENT") #documentul hartă curent
df = arcpy.mapping.ListDataFrames(mxd, "Romania")[0] #data frame-ul care conține layer-ul de simbolizat
fsl = "d:/gis_sse/simbol_GC.lyr" # fișierului în care s-a stocat simbologia
sl = arcpy.mapping.Layer(fsl) #obtinerea layerului din fișier
dl = arcpy.mapping.ListLayers(mxd, num_jud, df)[0] #layerul căruia i se va aplica simbologia
arcpy.mapping.UpdateLayer(df, dl, sl, "TRUE") #aplicarea simbologiei
if dl.symbologyType == "GRADUATED_COLORS": # daca tipul de simbologie este cea dorită
dl.symbology.numClasses = nrcl #precizarea numărului de clase
dl.symbology.valueField = num_camp #câmpul de simbolizat pe layer
arcpy.SetParameter(3,True) #parametrul de ieșire ia valoarea True fiindca s-a aplicat simbologia
else:
arcpy.SetParameter(3,False) #parametrul de ieșire ia valoarea False

40
#fiindca nu s-a putut aplica simbologia
arcpy.RefreshActiveView() #refresh pe hartă
arcpy.RefreshTOC() #refresh pe TOC

Scriptul astfel obținut se salvează, se rulează și se poate folosi ca atare sau se poate include într-un
model.
Dacă se dorește colorarea județelor după câmpul total folosind 4 intervale de valori se va rula scriptul
și se vor introduce valorile parametrilor în mod corespunzător iar rezultatul va fi afișat după cum se
poate observa în figura x.25.

Figura x.25 Harta cu simbologia rezultată

Accesul la datele unei baze de date spațiale se poate face din scripturi Python folosind biblioteca
specializată da (data access). Din punct de vedere tehnic, se utilizează conceptul de cursor, ca la baze
de date, în sensul că se poate crea un set de tupluri pe baza datelor dintr-o tabelă specificand și lista de
câmpuri care formează cursorul respectiv. Luând în considerare operațiile care se pot executa asupra
datelor din cursor, există trei tipuri de cursoare:
- SearchCursor care permite doar consultarea datelor din cursor;
- UpdateCursor ce permite și actualizarea datelor din cursor;
- InsertCursor care permite adăugarea de date în cursor.
Pentru a înțelege mai bine conceptul, se consideră tabela populație și se dorește a se calcula suma
valorilor câmpului cp care stochează populația în orașe mari pentru fiecare județ în parte.
import arcpy
import arcpy.da as da

rd_col = [randuri for randuri in da.SearchCursor("populatie",("cp"))]

41
s=0
for val in rd_col:
s+=val[0]
Scriptul urmărește într-o primă etapă să formeze o colecție de tupluri formată din tuplurile unui cursor
de tip SearchCursor. Colecția se stochează în variabila rd_col care este de fapt o listă de tupluri
(randuri) care fac parte din cursorul menționat. In limbaj, variabilele de tip listă de valori sunt indicate
prin [ ] specificând fie în mod explicit elementele listei fie în mod comprehensiv ca în exemplul de
mai sus. Cursorul, după cum se observă, este format din tuplurile tabelei populatie și acestea au doar
un singur câmp (cp). După ce a fost formată colecția, elementele ei au fost iterate prin instructiunea for
în vederea efectuării sumei valorilor care s-a stocat în variabila s. Extragerea valorii câmpului cp din
tuplu s-a realizat prin referirea acestuia folosind adresarea indexată precizând poziția câmpului în lista
de câmpuri indicată în cursor, primul fiind pe poziția 0; în exemplu, construcția val[0].
Să presupunem că în tabela populatie avem campul pondere_cp de tip double care trebuie încărcat cu
valorile corespunzătoare astfel încât acesta să stocheze ponderea populației în orașe mari în total
populație în orașe mari pe România. Suma populației în orașe mai în România a fost deja calculată și
stocată în variabila s iar pentru a calcula ponderile este necesar să construim un UpdateCursor în
vederea actualizării câmpului pondere_cp. Scriptul va continua cu secvența de cod:
with da.UpdateCursor("populatie",("cp","pondere_cp")) as crs:
for rd in crs:
rd[1] = float(rd[0])/s
crs.updateRow(rd)
Variabila crs este de tip UpdateCursor care este construit pe tabela populatie și conține câmpurile cp
și pondere_cp. Folosind instrucțiunea with se specifică blocul de instrucțiuni care se vor executa cu
cursorul crs. Astfel, pentru fiecare tuplu se calculează valoarea campului pondere_cp referit prin rd[1]
pe baza campului cp (rd[0]) si a sumei s. Construcția float() convertește operandul la un număr real ca
împărțirea să furnizeze rezultatul tot ca număr real. După actualizarea valorilor câmpurilor, prin apelul
metodei updateRow a cursorului crs, noile valori vor fi scrise în tabela populație.
Pentru a înlănțui un script în cadrul unui flux al unui model de geoprocesare acesta trebuie să
primească și / sau să returneze parametri. Dacă și alte operații urmează după script atunci acesta
trebuie să returneze parametri pentru a se putea lega și alte operații care folosesc rezultatul scriptului
ca parametru de intrare. De exemplu, se dorește construirea unui flux de procesare care să efectueze
mai întâi adăugarea câmpului pondere_cp la tabela populatie iar apoi folosind scriptul construit mai
sus se vor calcula valorile câmpului. Operația Add Field primește ca input tabela populatie, ii adugă
câmpul pondere_cp și returnează tot tabela populație cu câmpul adăugat. In mod natural, scriptul care
calculează valorile câmpului pondere_cp se va parametriza astfel încât sa primească ca input tabela
populatie rezultată din operația Add Field și va returna sub forma parametrului de ieșire, tot tabela
populatie. Parametrul de ieșire nu va genera o nouă tabelă ci va returna parametrul de intrare modificat
în script. Acest lucru se specifică la definirea parametrilor scriptului prin faptul că, pentru parametrul
de ieșire se va specifica la Direction valoarea Output, la Type valoarea Derived iar la Obtained from se
va specifica parametrul de intrare.

42
Web GIS
Web GIS, ca intersecţie între mediile Web şi GIS, a cunoscut o dezvoltare continuă. Sistemele
informatice geografice au început să fie folosite din ce în ce mai des în diverse aplicaţii web ce se
folosesc de locaţie. În comparaţie cu sistemele informaţionale geografice tradiţionale, dezvoltate
pentru analize Desktop, Web GIS este definit de mai multe caracteristici:
- Acces instant. Utilizatorul are acces la aplicaţiile web prin protocolul HTTP, putând vizualiza
aplicaţia, implicit datele care o alcătuiesc, de la calculatorul/telefonul personal prin browserul
web;
- Număr mare de utilizatori. Un GIS dezvoltat în mediul Web este folosit de mai mulţi utilizatori
în acelaşi timp, în funcţie de specificul aplicaţiei, nefiind nevoie ca aceştia să aibă experienţă în
domeniul geospatial;
- Capabilitate de rulare pe diverse platforme. Un avantaj major al Web GIS este că acesta poate
fi încărcat în diverse platforme, majoritatea clienţilor fiind browserele web: Mozilla Firefox,
Google Chrome, Internet Explorer, Apple Safari (funcţionale pentru sisteme de operare diverse
– Microsoft Windows, Linux, Apple Mac OS);
- Cost scăzut, raportat la numărul mare de utilizatori. De obicei, utilizatorii finali n-au nevoie să
instaleze programe sau să plătească pentru a accesa un Web GIS;
- Uşor de folosit de utilizatori. Utilizatorii finali pot fi oameni fără experienţă în domeniul GIS
sau chiar nefamiliari cu acest termen, însă datorită funcţionalităţii aplicaţiei şi intuivităţii
umane, uşurinţa de utilizare creşte;
- Funcţionalităţi diverse. În prezent, sistemele informaţionale geografice au aplicabilitate în
diverse domenii datorită faptului că orice obiect este legat de poziţionarea sa spaţială şi din ce
în ce mai multe industrii se folosesc de această proprietate.
Acoperind extrem de multe sectoare profesionale active, Web GIS este folosit ca ansamblu
multifuncţional. Dezvoltarea tehnologiei informaţiei poate oferi o platformă eficientă şi sigură pentru
diverse companii, prin îmbunătăţirea logisticii şi a distribuţiei beneficiilor economice. Web GIS este
reprezentat de o interfaţă grafică, interogări în baza de date, acces în timp real într-o bază de date,
funcţionalităţi de afişare a datelor, în funcţie de cererile pe care le face un utilizator prin Web.
Extensiile unui GIS prin Web asigură un instrument pentru uzul public.
API reprezintă o interfaţă de programare ce oferă suport pentru o dezvoltare net superioară a
aplicaţiilor web interactive. API-ul constă în librării de module şi metode pentru diverse straturi
tematice şi procesare a acestora, ce asigură o funcţionalitate maximă, performanţă și stabilitate.
JavaScript este un limbaj de programare orientat obiect, având rolul de a face paginile web interactive
şi dinamice. API pentru JavaScript se foloseşte alături de HTML şi CSS pentru a construi pagini web
cu funcţionalitatea unor aplicaţii web.
O arhitectură de bază a unei aplicaţii web este cea de tip client – server; în general, clientul
web este browserul web şi de aceea această arhitectură este denumită browser – server. În general,
fluxul de funcţionare a unei aplicaţii este ilustrat în figura 1:
- Utilizatorul foloseşte un client web (de obicei un browser web) pentru a iniţia o cerere către
serverul web, prin introducerea unui URL sau prin accesarea unui link dintr-o pagină web;
- Serverul web primeşte cererea, analizează URL-ul, localizează respectivul document sau
script, returnează respectivul document sau execută script-ul şi returnează răspunsul
scriptului către client. Răspunsul este de obicei în format HTML;
- Clientul web (browser-ul) primeşte răspunsul, îl livrează şi îl face vizibil utilizatorului în
fereastra browser-ului.

1
HTTP

URL HTTP

Figura 1 - Arhitectura de bază a unei aplicaţii de tip client - server

Există trei pivoţi de bază pentru WWW (World Wide Web): HTTP, URL şi HTML (figura 2).
Toate aceste elemente sunt considerate standarde internaţionale şi sunt administrate de W3C (World
Wide Web Consortium). URL reprezintă un subset al URI (Uniform Resource Identifier) şi are rolul
de a determina locaţia unei resurse pe Internet şi mecanismul pentru a o apela; este cunoscut şi sub
denumirea de adresa web, fiecare pagină web având un URL unic la nivel global. Fără acest URL,
resursele web nu ar fi putut fi interconectate pentru a forma mediul web aşa cum este cunoscut astăzi.

Figura 2 - Cele trei standarde de baza pentru WWW

HTTP este reprezentat sub formă de seturi de reguli şi proceduri folosite atât de clientul web,
cât şi de serverul web pentru a comunica. Atât cererile, cât şi răspunsurile între client şi server se fac
cu o structură de header şi body.
HTML reprezintă cel mai important limbaj de construire a paginilor web, fiind codul-sursă
pentru majoritatea acestora. Documentul HTML conţine informaţii despre design-ul şi formatul
paginii web, browser-ul afişând pagina exact aşa cum a fost formatată. Fiind un limbaj de marcare,
HTML este definit de un set de tag-uri (etichete). Afişarea şi formatul elementelor pot fi modificate cu

2
ajutorul CSS, un limbaj de scriptare folosit pentru a stiliza paginile web; poate fi integrat direct în
fişierul HTML sau poate fi scris într-un fişier separat şi referenţiat în documentul HTML.
Pentru a explica pe scurt procesul de dezvoltare a aplicaţiilor web şi tehnologiile ce sunt
folosite în comunicarea dintre server web şi client web, vor fi definite câteva noţiuni importante:
tehnologie server-side, tehnologie client-side şi formate interoperabile de date.
Tehnologia server-side include serverul web şi limbajele de programare care rulează în
interiorul lor. Serverele web găzduiesc site-urile web şi se conformează standardului HTTP. Au rolul
de a primi cereri HTTP de la client şi de a le returna un răspuns HTTP. Cele mai folosite servere web
sunt: Apache Web Server (este cel mai folosit server web, cu licenţă gratuită; poate rula pe toate
sistemele de operare şi este performant, stabil, facil de configurat), Internet Information System
(server web dezvoltat de Microsoft, folosit împreună cu Microsoft Windows; al doilea cel mai folosit
server web), Oracle/Sun Java System Web Server etc.
Tehnologia client-side (browser-side) se referă la tipul de client care trimite o cerere către
server şi limbajele de programare care rulează în interiorul acestora. Cel mai popular client web este
browserul web, alături de aplicaţii desktop sau pentru telefoane. Browserul web reprezintă un program
folosit de un utilizator pentru a direcţiona şi prezenţa resurse din mediul web, respectiv pentru a
interacţiona direct cu aceste resurse virtuale. Din punct de vedere tehnic, browser-ul web, ca şi client,
implementează specificaţii HTTP, HTML şi JavaScript, astfel realizându-se comunicarea cu serverele
web; prin răspunsul primit, browser-ul afişează documentul HTML şi execută codul script în
JavaScript, de exemplu. Cele mai folosite browsere sunt Mozilla Firefox, Google Chrome, Internet
Explorer, Apple Safari. De menţionat este faptul că o aplicaţie se poate afişa diferit în funcţie de
browser-ul folosit, în funcţie de cum interpretează fiecare browser specificaţiile HTML şi JavaScript
primite. JavaScript este un limbaj de tip script care rulează în interiorul paginilor web, având ca
rezultat pagini dinamice, interactive şi performante. JavaScript are avantajul de a fi uşor de folosit
chiar şi de către dezvoltatorii fără experienţă în programare. În plus, JavaScript asigură şi o siguranţă
personală deoarece are acces limitat la hard drive-ul local aflat pe calculatorul utilizatorului.
Formatele interoperabile de date între server-ul web şi clientul web se folosesc pentru a
îmbunătăţi performanţa, eficienţa şi viteza de încărcare a aplicaţiei. JSON este un format pentru
transferul de informaţii, de tipul obiectelor, string-urilor, numerelor, şiruri de valori etc., după reguli
bine stabilite. JSON este formatul nativ pentru JavaScript.
Aceste concepte sunt universal valabile pentru mediul web şi aplicându-le pentru Web GIS, se observă
faptul că o aplicaţie Web GIS este o aplicaţie web clasică cu capabilităţi GIS. Arhitectura de bază
pentru mediul Web GIS este asemănătoare cu cea clasică pentru mediul Web, cu menţiunea că sunt
adăugate componente GIS (figura 3). Procesul de trimitere a unei cereri de la un client web către un
server Web este aproximativ acelaşi:
- Utilizatorul încarcă aplicaţia Web GIS cu ajutorul unui client (un browser Web);
- Clientul web trimite o cerere pe Internet către server-ul web prin HTTP;
- Server-ul web transmite mai departe către server-ul GIS cererile cu caracter GIS;
- Server-ul GIS solicită şi recuperează datele stocate într-o bază de date şi procesează
cererea;
- Rezultatul stocat pe server-ul GIS, sub formă de date, înregistrări, hartă, rută etc., este
trimis către client de către server-ul web, tot prin protocolul HTTP;
- Clientul web afişează rezultatul pentru utilizator.
Server-ul GIS este cea mai importantă componentă din întregul sistem, de acesta depind proprietăţile
aplicaţiei – performanţa, stabilitatea, funcţionalitatea, capabitatea de fi optimizată. Un server GIS
poate avea următoarele funcţionalităţi:

3
- Capacitatea de a livra capabilităţi prin servicii Web, în concordanţă cu standardele OGC (Open
geospatial Consortium): WMS, WFS, WCS, KML etc.
- Capacitatea de a obţine servicii de înaltă calitate, inclusiv servicii de tip cache, servicii
optimizate pentru a dobândi performanţă maximă.
- Capacitatea de a găzdui API-uri pentru a construi aplicaţii interactive.

Figura 3 - Arhitectura de bază a unei aplicaţii Web GIS

Baza de date GIS de pe server reprezintă locul şi platforma unde sunt stocate datele necesare
pentru un GIS. Datele pot fi diverse, de la vector şi raster şi până la date 3D. Calitatea datelor
influenţează major funcţionalitatea aplicaţiei.

Există numeroase API-uri pentru dezvoltarea aplicaţiilor web GIS folosind Javascript: ArcGIS
API pentru Javascript, Google Maps API, Leaflet, OpenLayers. Toate acestea sunt definite de multiple
module şi metode diverse pentru a ajunge în final la a implementa o hartă funcţională într-o aplicaţie
web.
ArcGIS API pentru Javascript este compatibil cu următoarele browsere web: Google Chrome,
Mozilla Firefox, Apple Safari, Internet Explorer. Acest API a fost dezvoltat folosit librăria de
instrumente Dojo pentru a asigura stabilitatea aplicaţiei, indiferent de browser-ul folosit. Folosind
librării, dezvoltatorului îi este mai uşor să construiască o aplicaţie datorită codului care nu mai este atât
de complex şi aplicaţia, odată finlizată, este mai stabilă şi performantă. Pe lângă setul de instrumente
Dojo, dezvoltatorul se mai poate folosi de diverse widget-uri (denumite Dijits) pentru a adăuga
elemente precum butoane, câmpuri de text, meniuri, hartă de referinţă etc.
ArcGIS Server expune prin servicii: date, harți, imagini, instrumente de geoprocesare, geometri
etc. Acestea sunt preluate de către diverse tipuri de aplicații și utilizate corespunzator după cum se
poate observa în figura 4.

4
Fig. 4

S-ar putea să vă placă și