Go to content Go to navigation Go to search

geo-spatial.org: An elegant place for sharing geoKnowledge & geoData

Căutare



RSS / Atom / WMS / WFS


Contact


Lista de discuții / Forum


Publicat cu Textpattern


Comunitatea:

Conferința FOSS4G-Europe 2017
Conferința FOSS4G 2017

Utilizarea regulilor topologice în gvSIG

de Sorin Constantin

Publicat la 28 Jun 2010 | Secţiunea: Tutoriale | Categoria: GIS/
Nivel de dificultate:
25.10.2014 Tutorialul de fața folosește o versiunea mai veche a softului prezentat. Va rugăm consultați versiunea actualizată sau contactați autorul.

Introducere

Acest tutorial urmărește familiarizarea celor interesați cu aplicarea regulilor topologice asupra unor seturi de date vectoriale, identificarea greșelilor de vectorizare și procesare a datelor și eliminarea acestor probleme. În acest sens vom utiliza aplicația open source gvSIG, mai exact versiunea Beta 2 gvSIG OADE dezvoltată de către cei de la Oxford Archaeology. Motivele alegerii acestei versiuni beta (în pofida unor bug-uri care sperăm să fie rezolvate până la lansarea următoarei versiuni) sunt integrarea extensiei de topologie în pachetul de instalare și traducerea integrală a interfeței grafice în limba engleză. Mai multe detalii cu privire la îmbunătățirile aduse de OA Digital puteți găsi aici.

Setul de date vectoriale necesar parcurgerii prezentului tutorial îl puteți găsi aici.

Înainte de parcurgerea acestui material se recomandă consultarea articolului cu privire la topologia spațială de la adresa http://www.geo-spatial.org/articole/topologia-spa-iala.

Tutorialul este structurat pe patru capitole:

  1. Noțiuni introductive în utilizarea gvSIG
  2. Aplicarea regulilor topologice în cazul entităților vectoriale de tip poligon
  3. Aplicarea regulilor topologice în cazul entităților vectoriale de tip linie
  4. Aplicarea regulilor topologice în cazul entităților vectoriale de tip punct

1. Noțiuni introductive în utilizarea gvSIG

1.1. Operații de bază

După instalarea gvSIG, în cazul în care nu vi s-au creat scurtături pe desktop, interfața de lucru poate fi accesată de la Start/Programs/gvSIG OA Digital Edition 2010.

La pornirea aplicației se poate observa prezența ferestrei Project manager care oferă posibilitatea creării a 3 tipuri diferite de documente: View, Table si Map (Fig. 1). Se activează iconița View printr-un simplu click (1). Urmatorii pași sunt: (2) New -> (3) Click pentru activare view nou creat -> (4) Rename pentru atribuirea unei noi denumiri -> (5) Properties pentru setarea unor parametrii, cum ar fi proiecția dorită -> (6) Open.

Fig.1

Deschiderea datelor vectoriale se realizează prin accesarea comenzii Add layer din secțiunea View de pe Menu Bar sau prin click pe pictograma Add layer (Fig. 2.). Vom folosi pentru început fișierul judete_ro.shp (cel nemodificat).

Fig. 2

Rezultatul ar trebui să arate ca în figura 3.

Fig. 3

Uneltele cele mai utilizate în gvSIG sunt:

Fig. 4

1.2. Aplicarea regulilor topologice în gvSIG

Pentru aplicarea regulilor topologice este necesară încarcarea unuia sau a mai multor fișiere de tip vector (în funcție de regula topologică vizată) și accesarea extensiei de topologie prin click pe butonul Create topology (Fig. 5).

Fig. 5

Instrumentele acestei extensii devin utilizabile doar în momentul activării cel puțin a unuia dintre straturile vectoriale (prin click).

Se deschide fereastra din Fig. 6. Prin apăsarea butonului Next se trece la pasul următor, și anume definirea atributelor regulii (sau regulilor) de topologie pe care dorim s-o aplicăm (Fig. 7).

Fig. 6

Fig. 7

Câmpul Topology name va fi completat cu numele pe care dorim să-l atribuim setului de reguli topologice pe care urmează să le definim.

Cluster tolerance poate fi definită ca fiind aria de acoperire în cadrul căreia toți vertecșii sau limitele unuia sau mai multor elemente grafice sunt considerate a fi identice sau coincid. Valoarea aleasă de 0,001 (în unitatea de măsură cu care se lucrează, în cazul de față metrii) asigură o acuratețe ridicată la identificarea greșelilor. Astfel, spre exemplu, în cazul unei suprapuneri de poligoane, aceasta va fi considerată greseală dacă aria de extindere a suprapunerii este mai mare de 0,001 metri.

Maximum number of errors reprezintă numărul maxim de eventuale erori identificate pe care dorim sa-l avem într-o singura sesiune de validare a topologiei. În cazul de față acest număr este 100, ceea ce înseamnă că după identificarea a 100 de greșeli topologice în cadrul stratului țintă, căutarea va fi oprită. După înlaturarea acestor prime 100 de erori (sau marcarea lor ca și excepții), validarea topologică poate fi reluată, cu găsirea unui nou set de maxim 100 de greșeli. Valoarea aleasă în cazul acestui parametru influențează gradul de încăcare a spațiului de lucru precum și modul de funcționare a sistemului prin optimizarea resurselor acestuia.

În această etapă se stabilesc și straturile pentru care se vor aplica regulile topologice. Se trece mai departe prin apăsarea butonului Next.

Următoarea etapă o reprezintă definirea regulii de topologie pe care dorim s-o utilizăm. Acest lucru poate fi realizat prin intermediul butonului Add, așa cum se poate observa în Fig. 8.

Fig. 8

Alegerea regulii topologice și a straturile care urmează să participe la aplicarea acesteia se realizează prin intermediul unui meniu de tip drop down (fig. 9). În cazul în care avem un singur strat vectorial participant, acesta va fi automat recunoscut de program drept stratul A – First layer (A). Dacă la regula topologică participă și un al doilea strat, acesta va fi denumit stratul B – Second layer (B). În momentul selectării regulii topologice dorite, în partea din dreapta a ferestrei va apărea și o scurtă descriere a acesteia pentru o cât mai bună recunoaștere și nominalizare a restricției pe care dorim s-o aplicăm. Pentru a salva aceste opțiuni se apasă butonul Ok.

Fig. 9

În figura 10 se poate observa regula topologică definită mai devreme, precum și stratul asupra căruia aceasta iși va face efectul. Se poate trece la definirea unei noi reguli (cu ajutorul butonului Add) sau la terminarea definirii prin Finish.

Fig. 10

În urma acestor operații elementele grafice implicate în stabilirea validității topologice vor fi subordonate unui strat ce cuprinde regulile definite anterior (Fig. 11).

Fig. 11

După validarea topologiei se poate observa că stratul judete_ro nu prezintă greșeli conform regulii aplicate anterior. Acest lucru este evidențiat prin bifarea cu verde a stratului de topologie (must not overlap).

Notă: În cele ce urmează vor fi utilizate date preluate de pe site-ul www.geo-spatial.org. Precizăm că aceste date au fost modificate în mod intenționat de către autorul acestui tutorial astfel încât să se poată exemplifica greșelile de topologie care pot apărea, precum și modul lor de rezolvare. Aceste greșeli, introduse în mod voit, nu apar în cadrul versiunii originale de pe site-ul mai sus menționat.

2. Aplicarea regulilor topologice în cazul entităților vectoriale de tip poligon

În acest sens vom începe cu regula folosită și la punctul 1.2. și anume:

2.1. Nu trebuie să se suprapună (Must not overlap)

Această regulă se aplică atunci când dorim ca elementele aceluiași strat tematic să nu se suprapună. Ele pot avea în comun doar noduri și margini, dar nu și suprafețe. Pentru exemplificarea acesteia vom folosi fișierul de tip shapefile judete_ro.shp.

În urma parcurgerii pașilor prezentați în prima parte, topologia nu a fost validată (Fig. 12). Acest aspect este evidențiat prin X-ul de culoare roșie de pe pictograma stratului de topologie. Adițional a fost creat un nou strat ce conține geometriile (în cazul de față de tip poligon) care se identifică cu erorile găsite – zonele de suprapunere.

Fig. 12

Pașii ce trebuiesc urmați pentru a se identifica greșelile de topologie sunt următorii (Fig. 13):

  • activarea stratului de topologie must not overlap;
  • click cu butonul din dreapta al mouse-ului pe acesta;
  • selectare Topology properties; în urma acestei acțiuni apare o nouă fereastră;
  • activarea submeniului Errors; se poate observa eroarea pe care programul a găsit-o în urma procesului de validare;
  • apăsând butonul din dreapta al mouse-ului devin accesibile posibilele acțiuni care pot fi aplicate asupra erorii respective
  • Zoom to feature ajută la identificarea spațială a erorii (Fig. 14);

Fig. 13

Fig. 14

În ceea ce privește posibilitățile de eliminare a greșelii avem urmștoarele opțiuni:

  • Delete overlap areas from both polygons
  • Merge overlap area with one of the geometries
  • Create new polygon from area of overlap

Alegerea primei dintre ele duce la ștergerea completă a oricărei geometrii (din cadrul stratului judete_ro.shp) din zona de suprapunere. Ultima variantă creează în acea zonă un nou poligon.

Soluția indicată în cazul de față este cea de-a doua acțiune. Astfel, poligonul care reprezintă județul Vrancea și cel care reprezintă Bacăul se suprapun. Știind că această zonă trebuie să aparțină uneia dintre cele două unități administrative, se trece la identificarea acesteia și la atribuirea suprapunerii respectivului județ. În cazul de față poligonul prezentat în Fig. 14 ar trebui să facă parte din poligonul care desemnează județul Bacău. gvSIG oferă posibilitatea alegerii elementului cu care se va face alipirea (Fig. 15).

Fig. 15

În urma acestei operații topologia devine validă (Fig. 16), prin dispariția zonei de suprapunere (Fig. 17).

Fig. 16

Fig. 17

Salvarea modificărilor efectuate se realizează prin click cu butonul drept al mouse-ului pe stratul judete_ro și alegerea opțiunii Stop editing. La întrebarea “Save edits for layer: judete_ro.shp?” se alege varianta Yes.

2.2. Nu trebuie să conțină spații goale (Must not have gaps)

Pentru exemplificarea acestei reguli vom utiliza același fișier tip shapefile de la punctul 2.1. Regula aceasta se aplică în cazul unor poligoane care trebuie să acopere integral și în mod continuu un anumit areal, fără a lăsa spații goale între ele. În acest sens am modificat stratul cu județele României astfel încât între poligoanele reprezentând Tulcea, respectiv Constanța, să existe două spații goale (Fig. 18). Regula aplicată pentru depistarea acestei neconcordanțe este There must not be any gaps between polygons of A (Fig. 19), în acest caz A fiind reprezentat de stratul țintă, și anume judete_ro.shp.

Fig. 18

Fig. 19

Pentru aceste greșeli topologice descoperite avem la îndemână o singură alternativă de rezolvare, și anume Create new polygon to cover gap (Fig. 20), comandă ce va creea în locurile goale câte un poligon pe care ulterior, în cazul de față, să-l unim cu una din geometriile vecine (Tulcea sau Constanța).

Fig. 20

Deoarece urmează să aplicăm aceeași comanda de două ori, pentru două cazuri separate, putem folosi opțiunea Batch fix, după ce în prealabil se alege regula topologică folosită în dreptul optiunii Show (Fig. 21). În acest fel cele două goluri vor fi transformate în poligoane în mod automat, ambele în același timp. Opțiunea Batch fix este utilă în cazurile în care avem de-a face cu mai multe erori topologice care suferă aceleași rezolvări, timpul de lucru fiind astfel scurtat.

Fig. 21

Rezultatul poate vedea in Fig. 22:

Fig. 22

3. Aplicarea regulilor topologice în cazul entităților vectoriale de tip linie

3.1. Nu trebuie să se intersecteze cu ea însăși (Must not self intersect)

Această regulă poate fi folosită în validarea unor geometrii de tip linie care nu trebuie să conțină elemente care să se suprapună sau să se intersecteze cu ele însele, cum ar fi curbele de nivel. Pentru a ilustra cum funcționează vom folosi un strat conținând curbe de nivel (cu echidistanța de 100 m) extrase din fișierul SRTM L-35-078.
Regula utilizată este No line of A must self intersect (Fig. 23).

Fig. 23

În mod intenționat am introdus o greșeală în cadrul stratului folosit, în sensul că una dintre curbe se autointersectează (Fig. 24).

Fig. 24

Pentru a putea scăpa de această eroare, opțiunea existentă este cea de tăiere a liniei respective în punctul de intersecție (Fig. 25 si 26).

Fig. 25

Fig. 26

4. Aplicarea regulilor topologice în cazul entităților vectoriale de tip punct

4.1. Trebuie să fie în interiorul poligoanelor (Must be properly inside polygons)

Această regulă se aplică în situația în care un strat conținând informații de tip punct trebuie să se afle în interiorul unui alt strat de tip poligon. Cel mai bun exemplu în acest sens este reprezentat de localitățile unui anumit județ, care nu trebuie să depășească limitele administrative ale respectivului județ.
În continuare vom folosi localitățile din județul Vrancea și un alt layer de tip poligon ce reprezintă limita județului, extras din cadrul shapefile-ului folosit mai devreme (judete_ro.shp).
Regula poartă denumirea de All geometries of A must be contained in geometries of B în gvSIG (Fig. 27).

Fig. 27

Se poate observa de data aceasta că trebuiesc nominalizate straturile care participă la topologie astfel încât regula să poată fi aplicată corect. Stratul loc_vn_utf8.shp devine A, iar judet_vrancea.shp va fi recunoscut ca B.
În Fig. 28 se pot observa cinci localități care depășesc limita județului în cauză.

Fig. 28

Pentru eliminarea erorilor avem opțiunea de a sterge aceste puncte care nu respectă topologia impusă (Fig. 29). De asemenea, dacă dorim să păstrăm unul dintre aceste puncte evidențiate ca și erori, îl putem însemna ca fiind o excepție, topologia devenind valabilă, chiar dacă acel punct este în afara limitelor impuse inițial.

Fig. 29

Discută articolul (0 comentarii)

Categorii