Vissza az előzőleg látogatott oldalra (nem elérhető funkció)Vissza a tananyag kezdőlapjára (P)Ugrás a tananyag előző oldalára (E)Ugrás a tananyag következő oldalára (V)Fogalom megjelenítés (nem elérhető funkció)Fogalmak listája (nem elérhető funkció)Oldal nyomtatása (nem elérhető funkció)Oldaltérkép megtekintése (D)Keresés az oldalon (nem elérhető funkció)Súgó megtekintése (S)

GDAL, PostgreSQL- PostGIS / PostGIS térbeli adatbázis.

Tanulási útmutató

Összefoglalás

PostGIS adatbázis felépítése és függvényei valamint segédprogramokra vonatkozó leírás.

Követelmény

PostgreSQL adatbázis PostGIS kiegészítővel.

Bevezetés

PostgreSQL adatbázis kezelőrendszernek egy kiegészítő modulja, amely geometriai adatok és raszteres adatok tárolását támogatja. Lecke felépítése két fő fejezetből áll aszerint, hogy milyen típusú adattal dolgozunk: vektoros vagy raszteres. Előbb a vektoros adatokat tárgyaljuk, amely a következő alfejezetekből áll:

Raszteres adatok a következő alfejezetekből áll:

Vektoros adatok

GIS objektumtípusok

OGC szabvány szerinti "Simple Feature for SQL" objektumokat implementálta és bővítette ki PostGIS. További információkat a következő címen lehet megtekinteni: http://www.opengeospatial.org/standards/sfs Kétféleképpen reprezentálhatók a geometriai objektumokat:

Nézzünk meg néhány WKT objektum típust:

Kétféle reprezentáción kívül van még EWKT valamint EWKB amely a több dimenziós adatok kezelésére szolgál, azonban nem térnék ki külön erre a tananyag terjedelme miatt.

Eddig egyszerű Geometry objektumokról kaptunk alapvető ismereteket, azonban a legfontosabb tulajdonsága, hogy egy két dimenziós síkban vannak reprezentálva a térbeli adatok, amely azt eredményezi, hogy bizonyos számítások nem lehetnek pontosak, mint például a távolság, hossz vagy terület fogalma. A legtöbb geometry típuson alapuló térbeli függvény egyszerű Descartes algebra szerint lett kiszámítva. Ezért lett bevezetve a Geography típus, amely nem egyszerű két dimenziós síkra vetíti az adatok, hanem gömbre vetülő adatokkal és függvényekkel dolgozik. Ezért Geography típuson alapuló függvények kiszámítása bonyolultabb ezért a térbeli függvények egy részhalmazára lett implementálva (lassabban bővül), ezenkívül teljesítmény szempontjából mérhetően lassabbak mint Geometry típusú párjaik. Nem utolsósorban, az egyik legnagyobb hátránya Geography típusnak, hogy sajnos csak és kizárólag WGS84 (EPSG:4326) vetületirendszerben levő adatokat képes feldolgozni.

Vissza a tartalomjegyzékhez

Felépítés

PostGIS két táblát használ meta adatok tárolására:

Spatial_Ref_sys tábla felépítése

Több mint 3000 vetületirendszer tartalmazó tábla lehetőséget ad vetületirendszerek közötti transzformációra. Ezenkívül definiálhatunk saját vetületirendszer PROJ4 formátumban. Erről több leírás található: https://trac.osgeo.org/proj/ valamint vetületirendszerekre vonatkozó információkat http://spatialreference.org/ cimeken található.

A legelterjedtebb vetületirendszerek WGS84, ETRS89 és EOV/HD72 közül, PostGIS alapértelmezetten támogatja.

Felépítése a következő mezőkből állnak:

Geometry_columns tábla felépítése

Mint tudjuk, PostGIS 2.0 előtti verziókban Geometry_Columns nézetként volt definiálva, amely inkonzisztenciát okozott gyakorlatlan felhasználók számára, mivel egy tálba módosítás vagy törlése esetén, nem voltak szinkronban a Geometry_columns és geometriát felhasználó tábla szerkezete. Szerkezete a következő:

Spatial tábla létrehozása

Két esetet fogunk bemutatni, új tábla létrehozásával és meglévő táblához adunk geometria oszlopot.

Új tábla esetén:

Parancs

create table dummy( id serial primary key, location geometry(POINT, 4326));

Létező tábla esetén:

Parancs

alter table dummy add column bbox geometry(POLYGON, 23700);

Természetesen 2.0 verzió előtti módszer is működik, miszerint az AddGeometryColumn függvény meghívásával tudunk új térbeli oszlopot hozzáadni a táblához.

Parancs

select AddGeometryColumn(séma_név, tábla_név, oszlop_név, srid, típus, dimenziószám);

Vissza a tartalomjegyzékhez

Adatbetöltés

Shp2Pgsql betöltő segítségével, amely ESRI shapefile formátumú fájlokat tölt be adatbázisba. Paraméterei a következőek:

Példa:

Parancs

shp2pgsql -d -D -s 4326 -I countries.shp public.countries > countries.sql

vagy betölthetjük egyenesen az adatbázisba "> countries.sql" helyett "| psql -U felhasználó_név -h host_név -d spatial_data" paranccsal.

Vissza a tartalomjegyzékhez

Adatok lekérdezése

Pgsql2Shp alkalmazás segítségével, amely ESRI shapefile formátumban menti ki az adatokat. Kapcsolói a következőek:

Ezenkívül kötelező meghatározni az adatbázis nevét, séma és tábla nevét amit leszeretnénk kérdezni, összefoglalva az alkalmazás szignatúrája:

Parancs

pgsql2shp [kapcsolók] [adatbázis_név] [séma][tábla_név]

Példa:

Parancs

pgsql2shp -f countries.shp -h localhost -p 5432 -u mici -p mez -g hatar -b spatial_data public.countries

Vissza a tartalomjegyzékhez

Függvények

PostGIS függvényeket két fő csoportba sorolhatjuk:

Ebben a fejezetben kizárólag WKT adatokra vonatkozó függvényekkel fogunk foglalkozni, amely négy alcsoportba tudunk sorolni:

KEZELÉSI FÜGGVÉNYEK:

KAPCSOLATI FÜGGVÉNYEK:

Távolsági

Geometriai

FELDOLGOZÁSI FÜGGVÉNYEK:

'quad_segs=#': hasonló mint előző függvény.

'endcap=round|flat|square': round-lekerekített, flat-egyszerű, square-szögletes buffer vég.

'join=round|mitre|bevel': összekötő-szakaszoknál milyen legyen a buffer lekerekített|szögletes|levágott.

TARTALMI FÜGGVÉNYEK:

GEOMETRIAI KONSTRUKTOROK:

KIEGÉSZÍTŐ FÜGGVÉNYEK:

OPERÁTOROK:

Raszteres adatok

Vissza a tartalomjegyzékhez

Adatbetöltés

Az esetek többségében alapértelmezett raster2pgsql alkalmazást fogjuk használni raszteres adatok betöltésére. Raster2Pgsql alkalmazás GDAL programcsomagokat használ fel és alakítja át SQL parancsokká, amelynek segítségével már betudjuk tölteni az adatbázisba raszteres információkat.

Kapcsolói:

Ezenkívül kötelező meghatározni a séma és tábla nevét ahová beszeretnénk tölteni az adatokat. Az alkalmazás szignatúrája:

raster2pgsql [kapcsolók] [raszteres_állomány] [séma].[tábla_név] > kimeneti_szkript.sql

Példa:

Parancs

raster2pgsql -s 4326 -I -C -M bemeneti_allomany.tif -F public.test_tabla > kimenet.sql

psql -d adatbazis_nev -U felhasznalo_nev -f kimenet.sql

Vissza a tartalomjegyzékhez

Raszteres adattábla betöltésének lépései:

Tábla létrehozás:

Parancs

create table dummy(id serial primary key, felvetel raster);

Adatbetöltés:

Parancs

psql -d adatbazis_nev -U felhasznalo_nev -f kimeneti_szkript.sql

Indexelés:

Parancs

create index dummy_rast_idx on dummy using GIST(ST_ConvexHull(felvetel));

Raszter adatokra vonatkozó megszorítások hozzáadása:

Parancs

select AddRasterConstraints('dummy'::name, 'felvetel'::name);

Vissza a tartalomjegyzékhez

Új Széchenyi terv
A projekt az Európai Unió támogatásával, az Európai Szociális Alap társfinanszirozásával valósul meg.

A Társadalominformatika: moduláris tananyagok, interdiszciplináris tartalom- és tudásmenedzsment rendszerek fejlesztése az Európai Unió támogatásával, az Európai Szociális Alap társfinanszírozásával, az ELTE TÁMOP 4.1.2.A/1-11/1-2011-0056 projekt keretében valósult meg.
A tananyag elkészítéséhez az ELTESCORM keretrendszert használtuk.