Adatbázis rendszerek 8. előadás Térinformatikai adatbázisok és gyakorlati ötletek Molnár Bence
Téradat szerver programok Kereskedelmi szoftverek ArcGIS Server (Oracle, SQL Server, IBM DB2, PostgreSQL) (korábban ArcSDE) Oracle Spatial (Oracle) MS SQL Server 2008+ Geomedia + MS Access SyBase SQL Anywhere (mobil eszközökre is)... Nyílt forráskódú PostGIS (PostgreSQL) SpatiaLite (SQLite)... http://www.gita.hu/e2013/b3/teradat_workshop.pdf
PostGIS PostgreSQL kiegészítő C++ és plpgsql nyelven íródott Tárolt eljárások Minden adatbázishoz hozzá kell adni, amiben használni szeretnénk Új adattípusok Új összehasonlító operátorok Új összegző függvények Új elemzési lehetőségek Geometriát a DBMS rendszerek nem tudnak megjeleníteni
Pár infó http://wiki.hup.hu/index.php/postgis http://www.agt.bme.hu/gis/postgis/ http://workshops.boundlessgeo.com/postgis -intro/geometries.html http://www.gita.hu/e2013/b3/teradat_work shop.pdf
Megoldandó feladatok Adat séma definíció Adattárolás Helyhez kötött adatok Keresés indexelés Elemzések Vetületek átszámítása Geometriai adatfelvitel?
Séma definíció OGC: Simple Feature SQL A geometriai adatok egy mezőben kerülnek ábrázolásra Kódolt forma Nem csak koordináta, hanem teljes poligon is is lehet egy mezőben CREATE TABLE alappontok ( pid integer NOT NULL DEFAULT nextval('alappontok_pid_seq'::regclass), nev character(5), coord geometry(point,23700), CONSTRAINT pk_pid PRIMARY KEY (pid) )
Típusok Point Linestring Polygon Polygonwithhole, Multipoint, MultiLinestring, MultiPolygon, GeometryCollection SRID: Vetület megadása
Adattárolás - WKT Well Known Text szöveges adatmegadás egyszerű elemek (2D) POINT (30 10) pont, LINESTRING (30 10, 10 30, 40 40) törtvonal, POLYGON ((30 10, 10 20, 20 40, 40 40, 30 10)) felület, POLYGON ((35 10, 10 20, 15 40, 45 45, 35 10), (20 30, 35 35, 30 20, 20 30)) felület lyukkal több azonos típusú részből MULTIPOINT ((10 40 32), (40 30 41), (20 20 22)) 3D MULTIPOINT (10 40 32, 40 30 41, 20 20 22) MULTILINESTRING ((10 10, 20 20, 10 40), (40 40, 30 30, 40 20, 30 10)) MULTIPOLYGON (((30 20, 10 40, 45 40, 30 20)), ((15 5, 40 10, 10 20, 5 10, 15 5))) MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)), ((20 35, 45 20, 30 5, 10 10, 10 30, 20 35), (30 20, 20 25, 20 15, 30 20))) több eltérő típusú részből (nem minden kliens támogatja) GEOMETRYCOLLECTION(POINT(4 6),LINESTRING(4 6,7 10)) POINT ZM (1 1 5 60) http://www.gita.hu/e2013/b3/teradat_workshop.pdf
Adattárolás - WKB Well Known Binary bináris adatmegadás 01040000000100000001010000009239006 4507D1C412F1B85CA03BD0F41 MULTIPOINT(466772.10 260000.47) PostGIS EWKT/EWKB vetületet is tartalmazza "SRID=23700;POINT((466772.09765710 8 260000.473886692))" http://www.gita.hu/e2013/b3/teradat_workshop.pdf
Keresés Geometriai kapcsolatok elemzése Megjelenítés Indexelés GIST CREATE INDEX vez_geom_idx ON vezetekek USING GIST ( geom );
Elemzéső függvények ST_Equals(GEOMETRY,GEOMETRY) ST_Contains(GEOMETRY,GEOMETRY) ST_Within(GEOMETRY,GEOMETRY) ST_Intersects(GEOMETRY,GEOMETRY) ST_Crosses(GEOMETRY,GEOMETRY) ST_Disjoint(GEOMETRY,GEOMETRY) ST_DWithin(GEOMETRY,GEOMETRY,DISTANCE) ST_Relate((GEOMETRY,GEOMETRY) ST_Intersection(GEOMETRY,GEOMETRY) ST_Union(GEOMETRY,GEOMETRY) ST_Buffer(GEOMETRY,DISTANCE) ST_ConvexHull(GEOMETRY) ST_Transform(GEOMETRY,SRID)
Lekérdező függvények ST_Area(POLYGON) ST_Perimeter(GEOMETRY) ST_Distance(GEOMETRY,GEOMETRY) ST_Dimension(GEOMETRY) ST_AsText(GEOMETRY) ST_X(POINT) ST_Y(POINT) ST_NumPoints(GEOMETRY) ST_PointN(GEOMETRY,integer) ST_NumGeometries(GEOMETRY) ST_GeometryN(GEOMETRY,integer) ST_GeometryType(GEOMETRY)
Operátorok <-> Távolság ~ Tartalmaz @ Benne van ~= Azonos http://postgis.refractions.net/documentati on/manual-2.0/reference.html
Vetületek Proj függvénykönyvtár SRID EOV: 23700 WGS84: 4326 Google mercator: 900913 vagy 3857
Adatfelvitel DBMS Geometriai adatot csak szövegesen lehet (WKT) Külső adatforrások (import) Grafikus program QGIS Geomedia ArcGIS Web...
Kérdés Miért különül el az adatháttér a megjelenítéstől? Mert az adatháttér több alkalmazás számára is használható lehet, felesleges többször tárolni Egy alkalmazásban ugyanaz az adat többször is megjelenhet, de más kinézettel.
WebGIS Weboldal (html, javascript, java, flash...) Webserver (Apache, Tomcat, Lighthttpd, IIS) Térképszerver (Geoserver, Mapserver) WMS raszteres, georeferált adat Web Map Service Képek (tif) WFS vektoros, georeferált adat Web Feature Service Adatbázis (PostGIS, shapefile, csv...) WPS Web Processing Service Elemzések a szerveren futnak
Szótár I. Proj Vetületi számításokért felelős függvénykönyvtár, megtalálható benne a legtöbb vetületi rendszer GDAL Képek átalakítására, georeferálására, képpiramis készítésre használható függvénykönyvtár WKT Well Known Test geometriai objektumok szöveges WKB leírása Well known Binary - geometriai objektumok bináris leírása
Szótár II. OpenStreetMap (OSM) Ingyenes, közösségi vektoros térkép Ajax Aszinkron kommunikáció a böngésző és a szerver közt (Oldal egyes részeinek megváltoztatása a teljes újratöltés nélkül) JSON, GeoJSON Ajax segítségével továbbított jól struktúrált adat ExtJS, GeoExt, OpenLayers Böngészőben használható javascript függvénykönyvtárak, megkönnyítik a megjelenítés megvalósítását Pmapper Komplex megvalósítás
QGIS Ingyenes térinformatikai software PostGIS adatokat olvas Rengeteg fajta ki és bemeneti adatok Digitalizálásra is alkalmas Saját geometriai elemző funkciók
WebGIS
Gyakorlati ötletek
Adat generálás Pilot projekthez (vagy HF) Teszteléshez váratlan adatok Excel RAND() / VÉL() RANDBETWEEN() / VÉLETLEN.KÖZÖTT() Webes generátorok Máshonnan szerzett adatok
Adat beolvasás Excel CSV Elválasztó Idézőjel Karakter kódolás különleges karakterek Sorvége Üres mezők PDF Copy - Paste Text to columns (Szövegből oszlopok) OCR Optikai karakter felismerés
Elemzések Excel-ben Ctrl+F Filter VLOOKUP() / FKERES() Rendezett vagy rendezetlen lista Összetett kulcs? HLOOKUP() / VKERES() CONCATENATE() / ÖSSZEFŰZ() TRIM() / KIMETSZ()
Mintavideók OCR: http://www.youtube.com/watch?v=mr7e7 -VAWTQ VLOOKUP: http://www.youtube.com/watch?v=vyosu irgmua Text to Columns: http://www.youtube.com/watch?v=k7urf2 ckpf8
ZH megtekintés
Köszönöm a figyelmet! Adatbázis rendszerek