2 Vektorski podaci

Vektorski podaci predstaljaju strukturu podataka u GIS-u gde se geometrija i pozicija čuvaju kao parovi (x,y) koordinata. Kod tačkastih potataka pored geometrije za svaku tačku, uobičajeno je da se čuvaju i atributni podaci. Takvi podaci se mogu predstaviti i običnom tabelom podataka, u kojoj se čuvaju podaci o lokaciji i atributni podaci.

Tabela 2.1: Primer tačkastih vektorskih podataka u formi tabele date za 2 tačke, sa 3 atributa.
Geometrija Atribut 1 Atribut 2 Atribut 3
(x1 y1) Vrednost 1 Vrednost 2 Vrednost 3
(x2 y2) Vrednost 4 Vrednost 5 Vrednost 6

Kod linijiskih podataka linija je predstavljena setom koordinatnih parova, koji su spojeni od tačke do tačke redom, linijskim segmentima, kao što bi se spojilo olovkom vodeći računa o redosledu. Poligoni su organizovani slično kao linije koje počinju i završavaju se u istoj tački. Redosled isctravanja linija (segmenata) kod poligona je najčešće definisan suprotno pravcu kretanja kazaljke na satu za obuhvaćenu površinu, dok se za praznine unutar površine koristi pravac kretanja kazaljke na satu, ili obrnuto, zavisno od formata podataka. Primer vektorskih geometrijskih primitiva u Well Known Text formatu dat je u Tabeli 2.2. Kako kod vektorskih tako i kod rasterskih podataka postoji veliki broj formata koji su se koristili i koji se danas koriste se za čuvanje prostornih podataka. Istoriju razvoja formata i sistema za manipulaciju prostornim podacima su veoma slikovito opisali Pebesma i koautori (http://r-spatial.org/2016/11/29/openeo.html).

Osamdesetihtih godina prošlog veka, praktično svaki proizvođač softvera je imao svoj način čuvanja prostornih podataka, Slika 2.1.

Devedesetih godina prošlog veka je došlo do promene. Više proizvođača softvera je počelo da koristi nekoliko formata za prostorne podatke. Zbog toga je bilo moguće koristiti isti format u različitim GIS okruženjima, nekad uz neophodnu konverziju, ali interoperabilnost je bila moguća, Slika 2.2.

Tabela 2.2: Primer 2D geometrijskih primitiva kod vektorskih podataka, više na https://en.wikipedia.org/wiki/Well-known_text
Tip Primer koristeći Well Known Text sintaksu WKT
Tačka alt text POINT (30 10)
Linija alt text LINESTRING (30 10, 10 30, 40 40)
Poligon alt text POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))
Poligon sa prazninom alt text POLYGON ((35 10, 45 45, 15 40, 10 20, 35 10), (20 30, 35 35, 30 20, 20 30))
Ogranizacija prostornih podataka osamdesetih godina prošlog veka. Svaki veliki proizvođač softvera je imao svoj način struktuiranja i čuvanja prostornih podataka, praktično nije bilo interoperabilnosti. \citep{Peo2016}

Slika 2.1: Ogranizacija prostornih podataka osamdesetih godina prošlog veka. Svaki veliki proizvođač softvera je imao svoj način struktuiranja i čuvanja prostornih podataka, praktično nije bilo interoperabilnosti.

Devetesetih godina, više tipova fajlova koji čuvaju prostorne podatke mogli su se koristiti u više GIS ili CAD okruženja. \citep{Peo2016}

Slika 2.2: Devetesetih godina, više tipova fajlova koji čuvaju prostorne podatke mogli su se koristiti u više GIS ili CAD okruženja.

Nakon toga, 2000-te napravljena je GDAL (Geospatial Data Abstraction Layer http://www.gdal.org/) biblioteka otvorenog koda (eng. open source). GDAL biblioteka omogućava čitanje i pisanje različitih formata kako vektorskih tako i rasterskih struktura podataka. Praktično je napravljena jedna biblioteka za konverziju i omogućila korišćenje različitih tipova podataka u skoro svim GIS sistemima, Slika 2.3. U daljem tekstu će kratko biti opisani najpopularniji formati vektorskih podataka koji su implementirani u GDAL biblioteci.

GDAL biblioteka za manipulaciju vektorskim i rasterskim podacima. \citep{Peo2016}

Slika 2.3: GDAL biblioteka za manipulaciju vektorskim i rasterskim podacima.

2.1 Geographic Markup Language (GML) format

GML je XML “dijalekat” kome raste popularnost kao formata vektorskih podataka. Nastao je i razvija se od strane Open Geospatial Consortium (OGC), a implementiran je kao otvoreni standard. OGC je neprofitna organizacija koja se bavi standardizacijom na polju geoprostornih tehnologija. Standardi koje kreira OGC su slobodno dostupni (otvoreni standardi).

GML predstavlja XML fajl pa je zato čitljiv kompjuterskim sistemima, ali se isto tako može sa njim manipulisati koristeći bilo koji tekst editor. GML obezbeđuje definisanje prostornih entiteta i osobina, kao što su koordinatni referentni sistemi, geometrija, topologiju, vreme i drugo. Generalno, GML formatom mogu se predstaviti prostorni i prostorno vremenski fenomeni.

GML se najčešće koristi kod Web GIS i kartografskih servisa, kao i kod standardnih GIS softvera.

Ono što GML čini moćnim formatom je i to što on kao i neki slični prostorni formati kao što je KML (ranije poznat kao Keyhole Markup Language) mogu sadržati i multimedijalni sadržaj kao što je tekst, video i audio sadržaj, zajedno sa pridruženom stilizacijom prostornih fenomena. Druga velika prednost ovog formata je što se lako može i proširivati u zavisnosti od potreba korisnika.

Vektorski podatak iz Tabele 2.3 prikazan je pomoću crvenog tačkastog znaka u QGIS softveru sa OpenStreetMaps kartom kao pozadinom (Slika 2.4).

Tabela 2.3: Vektorski podaci prikazani u tabeli, pozicija Građevinskog fakulteta u Beogradu sa 3 atributa: id, Naziv i url.
X Y id Naziv url
20.47616447 44.8056810019 1 Građevinski fakultet www.grf.rs
Vektorski podatak prikazan u QGIS okruženju.

Slika 2.4: Vektorski podatak prikazan u QGIS okruženju.

Vektorski podatak iz Tabele 2.3 u GML formatu mogao bi da se kreira koristeći sledeću sintaksu:

<?xml version="1.0" encoding="utf-8" ?>
<ogr:FeatureCollection
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation=""
     xmlns:ogr="http://ogr.maptools.org/"
     xmlns:gml="http://www.opengis.net/gml">
  <gml:boundedBy>
    <gml:Box>
<gml:coord><gml:X>20.47616446997252</gml:X><gml:Y>44.8056810018923</gml:Y></gml:coord>
<gml:coord><gml:X>20.47616446997252</gml:X><gml:Y>44.8056810018923</gml:Y></gml:coord>
    </gml:Box>
  </gml:boundedBy>
  <gml:featureMember>
    <ogr:test fid="test.0">
      <ogr:geometryProperty> 
       <gml:Point srsName="EPSG:4326"> 
       <gml:coordinates>20.476164469972524,44.805681001892303</gml:coordinates> 
       </gml:Point> 
       </ogr:geometryProperty>
      <ogr:id>1</ogr:id>
      <ogr:Naziv>Građevinski fakultet</ogr:Naziv>
      <ogr:url>www.grf.rs</ogr:url>
    </ogr:test>
  </gml:featureMember>
</ogr:FeatureCollection>

U prvom delu GML fajla je deo koji se odnosi na verziju XML dokumenta i način kodiranja karaktera u fajlu.

<?xml version="1.0" encoding="utf-8" ?>

Kod GML sintakse, isto kao i kod XML-a, sav sadržaj je definisan elementima XML fajla. Najčešće se elementi XML fajla nazivaju tagovi. Svaki tag ima svoj početak i kraj. Nekad se u okviru jednog taga mogu naći i dodatni atributi. Na primer ovaj fajl je otvoren tagom ogr:FeatureCollection sa više atributa (deo koji se odnosi na shemu, tj. na pravila koja se koriste za generisanje GML fajla). Na kraju fajla je ovaj element zatvoren sa odgovarajućim tagom istog imena, ali sa kosom crtom ispred naziva taga </ogr:FeatureCollection>.

<ogr:FeatureCollection
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation=""
     xmlns:ogr="http://ogr.maptools.org/"
     xmlns:gml="http://www.opengis.net/gml">

...
</ogr:FeatureCollection>

Potom sledi deo koji definiše prostorni obuhvat podataka. U njemu je definisan pravougaonik sa koordinatama dveju tačaka, tj. najjužnijom i najzapadnijom tačkom i tačkom koja predstavlja najseverniju i najistočniju tačku za posmatrani set podataka. Sve ovo je uokvireno odgovarajućim tagovima GML fajla.

  <gml:boundedBy>
    <gml:Box>
  <gml:coord> <gml:X>20.47616446997252</gml:X><gml:Y>44.8056810018923</gml:Y>
  </gml:coord>
  <gml:coord>
  <gml:X>20.47616446997252</gml:X><gml:Y>44.8056810018923</gml:Y>
  </gml:coord>
    </gml:Box>
  </gml:boundedBy>

Potom sledi deo koji opisuje geometriju kao i koordinatni referentni sistem u kom su zadate koordinate, u našem primeru (Tabela 1.3) su to koordinate posmatrane tačke u elipsoidnom globalnom referentnom sistemu WGS84 (EPSG:4326). Na kraju GML fajla se nalaze podaci o nazivu i vrednosti atributa.

<gml:featureMember>
    <ogr:test fid="test.0">
<ogr:geometryProperty>
<gml:Point srsName="EPSG:4326"> 
  <gml:coordinates>
  20.476164469972524,44.805681001892303
</gml:coordinates> 
</gml:Point>
</ogr:geometryProperty>
      <ogr:id>1</ogr:id>
      <ogr:Naziv>Građevinski fakultet</ogr:Naziv>
      <ogr:url>www.grf.rs</ogr:url>
    </ogr:test>
</gml:featureMember>

2.2 KML format

KML format je prethodno bio u vlasništvu kompanije Google i razvijan je kao format za geovizualizaciju tj. prikaz prostornih podataka u 2D i 3D prostoru na virtuelnom globusu Google Earth. Od verzije 2.2 je implementiran kao OGC standard.

KML je baziran na XML jeziku sa glavnim fokusom na prostornoj vizualizaciji, uključujući i mogućnosti navigacije korisnika, kako u prostoru, tako i kroz vreme, tako da su prostorno vremenske vizualizacije takođe moguće koristeći KML format.

Ako primer iz prethodnog poglavlja (Tabela 2.3) prikažemo koristići KML format, vidi se da je logika organizacije fajla slična kao i kod GML formata, samo što se koristi tag notacija koja je zasnovana na KML shemi.

<?xml version="1.0" encoding="utf-8" ?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document id="root_doc">
<Folder><name>test</name>
  <Placemark>
<Point> 
  <coordinates>20.476164469972524,44.805681001892303</coordinates> 
</Point>
  </Placemark></Folder></Document></kml>

Kompresovani KML fajl ima KMZ ekstenziju. Slično kao i kod GML fajla, pored stilizacije koja se može sačuvati u KML formatu, može se integrisati i multimedijalni sadržaj, Slika 2.5. Koristeći KML format moguće je definisati način na koji će biti prikazivani atributni podaci: dodati url adrese, definisati veličinu fonta, stil tekst, boju, poravnanje teksta, tabele i slično, Slika 2.6.

Prikaz geodetske mreže na virtuelnom globusu Google Earth sa pridruženim atributnim podacima formatiranim u tabelu.

Slika 2.5: Prikaz geodetske mreže na virtuelnom globusu Google Earth sa pridruženim atributnim podacima formatiranim u tabelu.

Prikaz vizualizacije u KML formatu sa multimedijalnim sadržajem, nastao koristeći R paket plotKML, \citep{R-plotKML}.

Slika 2.6: Prikaz vizualizacije u KML formatu sa multimedijalnim sadržajem, nastao koristeći R paket plotKML, .

Pored prikaza i vizualizacije prostornih, prostorno vremenskih fenomena, trajektorija, u KML formatu se mogu generisati i vizualizovati i 3D objekti, koji mogu imati i pridružene teksture u formatu fotografija (Slika 2.7). Za formiranje KML fajlova često se koristi SketchUp softver.

Prikaz zgrade Građevinskog fakulteta u Beogradu u 3D okruženju na virtuelnom globusu Google Earth.

Slika 2.7: Prikaz zgrade Građevinskog fakulteta u Beogradu u 3D okruženju na virtuelnom globusu Google Earth.

2.3 CityGML format

CityGML je takođe OGC format otvorenog standarda zasnovan na XML-u prvenstveno namenjen za skladištenje i razmenu virtuelnih 3D modela gradova. Nastao je na bazi GML3 specifikacije za prikaz 3D objekata. CityGML, za razliku od KML-a, ima jasno i hijerarhijski organizovanu geometriju zajedno sa semantičkim značenjem svih elemenata.

Entiteti koji se modeliraju su:

  • Digitalni model terena,
  • Građevinski objekti (zgrade),
  • Vegetacija,
  • Vodene površine,
  • Putna mreža,
  • Gradski mobilijar (eng urban furniture; bandere za osvetljenje, saobraćajni znakovi,…).

Osobina ovog formata je da je organizovan u 5 niovoa detaljnosti (Levels of Detail - LOD):

  • LOD 0 - regionalni nivo, pejzaž;
  • LOD 1 - grad, region;
  • LOD 2 - gradski kvart;
  • LOD 3 - detaljan model objekta spolja;
  • LOD 4 - model objekta sa unutrašnjim detaljima.

Prikaz aplikacije koja daje informacije o solarnom potencijalu krovova za Inđiju bazirana na CityGML modelu dat je na Slici 2.8.

Vizualizacija semantičkog CityGML modela u nivou detaljnosti LOD2, primer aplikacije i-Scope,  \citep{iscope}, prikaz solarnog potencijala krovova na virtuelnom globusu \citep{nww}

Slika 2.8: Vizualizacija semantičkog CityGML modela u nivou detaljnosti LOD2, primer aplikacije i-Scope, , prikaz solarnog potencijala krovova na virtuelnom globusu

Još jedan primer korišćenja CityGML podataka je prikaz 3D modela Njujorka na virtuelnom globusu Cesiumjs, Slika 2.9.

Prikaz 3D modela Njujorka, zgrade zavisno od visine imaju različite boje. Interaktivan prikaz pogledati na adresi \citep{NY}.

Slika 2.9: Prikaz 3D modela Njujorka, zgrade zavisno od visine imaju različite boje. Interaktivan prikaz pogledati na adresi .

2.4 GeoJSON format

GeoJSON je standardni otvoren format za prikaz vektorskih prostornih podataka koji koristi JavaScript notaciju objekata. Najčešće se koristi kod web kartografskih klijenata kao što su OpenLayers, Leaflet, i drugi. Slično kao i drugi vektorski formati GeoJSON podržava osnovne geometrijske primitive: tačka, linija, poligon. Takođe, više tačaka (kao jedan entitet), više linija (kao jedan entitet), više poligona (kao jedan entitet; sa oznakama MultiPoint, MultiLineString i MultiPolygon). Ako želimo da u jednom objektu prikažemo neku državu sa svim njenim ostrvima, recimo Grčku, tada bi se koristila geometrija sa MultiPolygon geometrijskim primitivom, Tabela 2.4.

Tabela 2.4: Višečlani geometrijski objekti tipa: MultiPoint, MultiLineString i MultiPolygon
Tip Primer
Više tačaka alt text { "type": "MultiPoint", "coordinates": [ [10, 40], [40, 30], [20, 20], [30, 10] ] }
Više linija alt text { "type": "MultiLineString", "coordinates": [ [[10, 10], [20, 20], [10, 40]], [[40, 40], [30, 30], [40, 20], [30, 10]] ] }
Više poligona alt text { "type": "MultiPolygon", "coordinates": [ [ [[30, 20], [45, 40], [10, 40], [30, 20]] ], [ [[15, 5], [40, 10], [10, 20], [5, 10], [15, 5]] ] ] }
Više poligona alt text { "type": "MultiPolygon", "coordinates": [ [ [[40, 40], [20, 45], [45, 30], [40, 40]] ], [ [[20, 35], [10, 30], [10, 10], [30, 5], [45, 20], [20, 35]], [[30, 20], [20, 15], [20, 25], [30, 20]] ] ] }

U narednom primeru će biti prikazan vektorski objekat sa lokacijom Građevinskog fakulteta i 3 pridružena atributa korišćena i kod KML i GML formata za demonstraciju strukture podataka. U ovom slučaju vektorski podatak je struktuiran kao JavaScript objekat. U njemu je sadržan i podatak o koordinatnom referentnom sistemu (crs), atributima (properties) i geometriji entiteta (geometry).

{
"type": "FeatureCollection",
"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },
                                                                                
"features": [
{ "type": "Feature", 
 "properties": { "id": 1, "Naziv": "Građevinski fakultet", "url": "www.grf.rs" }, 
"geometry": { "type": "Point", "coordinates": [20.476164469972524, 44.805681001892303]}}
]
}

Aplikacija na kojoj je moguće kreirati GeoJSON fajlove i posmatrati njihovu strukturu je dostupna na adresi geojson.io.

Dodatak GeoJSON-a je TopoJSON ekstenzija GeoJSON-a, koja kodira prostornu topologiju i tipično obezbeđuje manje veličine fajlovima. Kod TopoJSON fajla se ne čuvaju podaci više puta, npr. granica dve susedne opštine čuvala bi se samo jednom.

2.5 Well Known Text (WKT)

Well Known Text - WKT je markup jezik za reprezentaciju prostornih vektorskih podataka koji se vrlo često primenjuje kod prostornih baza podataka, tako da je pogodan kod tabelarnog prikaza podataka. U tabeli, Tabela 2.5, je dat primer koji je korišćen ranije za već opisane formate. WKT podržava osnovne geometrijske primitive: tačke, linije, poligone i više tačaka (kao jedan entitet), više linija (kao jedan entitet), više poligona (kao jedan entitet) i geometrijsku kolekciju (kao jedan entitet).

Tabela 2.5: Vektorski podatak u tabelarnom prikazu gde je geometrija definisana u WKT formatu.
WKT id Naziv url
POINT (20.4761644699725 44.8056810018923) 1 Građevinski fakultet www.grf.rs

Generalno, multi geometrijski primitivi su prikazani slikovito na slici, Slika 2.10.

Geometrijski primitivi koje podržava WKT.

Slika 2.10: Geometrijski primitivi koje podržava WKT.

2.6 ESRI Shapefile format

ESRI Shapefile je popularan format za skladištenje vektorskih podataka koga je razvila kompanija ESRI devedesetih godina, a kasnije je korišćen u mnogim GIS softverima. Za razliku od prethodnih primera on je binaran format, tako da ga nije moguće pregledati i modifikovati u tekst editorima. Uobičajeno je da se za jedan vektorski sloj formiraju najmanje tri fajla pod istim imenom:

  • test.shp — geometrijski primitivi,
  • test.shx — indeksirani entiteteti u odnosu na geometriju,
  • test.dbf — atributni podaci u dBase IV formatu.

Na primer, dodatno može da postoji test.prj fajl koji se odnosi na projekciju kao i još neki fajlovi.

Detaljno o ESRI Shapefile formatu videti na url adresi:

http://downloads.esri.com/support/whitepapers/mo_/shapefile.pdf.

Pored ovog postoji još mnogo drugih formata koji se koriste za manipulaciju vektorskim prostornim podacima, tabela formata kojima se može manipulisati GDAL bibliotekom dostupna je na url adresi: http://www.gdal.org/ogr_formats.html.

Koristeći ogr2ogr funkciju iz GDAL bibloteke može se jednonostavno transformisati iz jednog formata u drugi.

Primer konverzije iz komandne linije iz Shapefile formata u GeoJSON format:

ogr2ogr  -f  "GeoJSON" output.json input.shp

Oznaka -f je argument ogr2ogr funkcije za zadavanje formata izlaznog fajla. Kod GDAL funkcija princip je da se argument navodi sa crticom (-) ispred naziva argumenta i potom razmak i vrednost argumenta. Fajl input.shp je ulazni podatak u ESRI Shapefile formatu, dok je output.json rezultat konverzije u GeoJSON formatu. Detaljan opis funkcije i njenih argumenata može se naći na url adresi http://www.gdal.org/ogr2ogr.html ili pozivanjem manuala za funkciju iz komandne linije:

ogr2ogr --long-usage 

Da bi se ove komande izvršavale u komandnoj liniji neophodno je predhodno instalirati GDAL biblioteku. Instalacija je različita u zavisnosti od operativnog sistema.

Ove konverzije se mogu jednostavno realizovati koristeći QGIS, SAGA-GIS ili sličan desktop GIS softver iz razloga što je GDAL sastavni deo mnogih GIS softvera. U QGIS okruženju je konverzija moguća kad se desnim klikom miša poentira na vektorski lejer i odabere opcija Save As, i onda se u dijalog prozoru može odabrati jedan od željenih formata. Slično je i u SAGA-GIS okruženju, izabere se Import/Export set funkcionalnosti, zatim GDAL/ORG funkcijom moguće je vršiti konverzije između različitih formata.

2.7 Izvori dostupnih vektorskih podataka

U ovom poglavlju će kratko biti pomenuti neki izvori vektorskih podataka odakle se mogu preuzeti besplatni vektorski podaci (otvoreni podaci).

Open Data Institute definiše otvorene podatke na sledeći način:

  • podaci koji se lako dele putem Interneta,
  • dostupni su u standardnom format,
  • imaju garantovanu dostupnost i konzistenciju u vremenu,
  • imaju jasan opis kako su nastali.

Natural Earth - Portal za preuzimanje vektorskih i rasterskih podataka različitog nivoa detaljnosti i tačnosti, podaci su besplatni. Url adresa: http://www.naturalearthdata.com.

Esri Open Data - Kompanija Esri je 2017 napravila geoportal za preuzimanje velikog broja GIS setova podataka kako vektorskih tako i rasterskih u standardnim GIS foramatima. Url adresa: https://hub.arcgis.com/pages/open-data.

OpenStreetMap (OSM) - je najveća volonterska baza i web portal prostornih podataka slična komercijalnim portalima kao što su Google Maps ili Bing Maps, ali s tom razlikom da je moguće preuzeti vektorske podatke u formatu koji obezbeđuje OpenStreetMap organizacija. Za konverziju u standardne formate može se koristiti neki od QGIS dodataka (plugin) za preuzimanje OSM podataka. Url adresa: https://www.openstreetmap.org/.

GADM - je baza podataka o administrativnim granicama organizovana u više hijerarhijskih nivoa i dostupna je u standardnim GIS formatima. Url adresa: http://gadm.org/.

GeoNames - je baza geografskih naziva, toponima, sa lokacijom naziva i dodatnim atributima, podaci se mogu preuzeti u tekstualnom formatu, ali se lako mogu konvertovati u neki od GIS vektorskih formata. Url adresa: http://www.geonames.org.

Na url adresi https://freegisdata.rtwilson.com/ može se naći lista velikog broja izvora kako vektorskih tako i rasterskih podataka grupisana po kategorijama.