1. Postgis adat betöltő, exportáló használata
a). Adatok bevitele
Térbeli adatok bevitelének legegyszerűbb módja az shp2pgsql program használata, amely ESRI
Shape formátumból tud sqlbe konvertálni adatokat.
shp2pgsql -s 23700 -W iso88592 patak_eov_100.shp egyeb_vizfolyasok. patak_eov_100 ekovizig > patak_eov_100.sql
Az 's' kapcsoló adja meg a vetületet, ami alap esetben (-1) – akár van .prj fájl akár nincs. 'W'
kapcsoló adja meg, hogy melyik a helyes karakterkódolás. Ez például a windows – linux
párhuzamos használata esetén fontos, mert míg az ubuntu az utf8-at, a windows a cp1250-et
használja alap beállításként, ami az ő és az ű betűknél hibát okoz, rossz esetben létre sem hozza a
betölthető állományt (vicces az egészben, hogy a postgresql eléggé merev a karakterkódolást
tekintve, így a -W a Warázs kapcsoló:). A 'patak_eov_100 .shp' rész mutat a shape fájlra, az
'egyeb_vizfolyasok.patak_eov_100 ' mondja meg melyik sémában és milyen tábla névvel
szerepeljen az adatbázis kezelőben az adat (ha a sémát nem adjuk meg, akkor az a public lesz). Az
'ekovizig' mondja meg melyik adatbázisba fog kerülni az állomány, a '> patak_eov_100.sql' rész
pedig létrehoz egy betölthető fájlt (egyébként nem feltétlenűl kell külön fájlt létrehozni).
Végül, ha minden megfelelő volt, akkor a következő parancs hiba nélkül lefut:
psql ekovizig -f patak_eov_100.sql
b). Az adatok exportálása
pgsql2shp -f patak_eov_100.shp -h localhost -p 5432 ekovizig patak_eov_100
-f kapcsoló adja meg a létrehozandó fájl nevét, -h és a -p az adatbázishoz való utat mutatja írja le,
ekovizig az adatbázis név, a patak_eov_100 pedig a tábla név. Tábla név helyett lekérdezést is meg
lehet adni, pl 'SELECT * FROM patak_eov_100 WHERE nev LIKE A%', ekkor az A betűvel
kezdődő patakok kerülnek listázásra.
Néha nincs szükség shape létrehozására, elég egy egszerű text fájl, amit a következőképpen lehet létrehozni:
ekovizig=>\o /home/szabobaa/adat.csv
ekovizig=>SELECT ST_ASEWKT(the_geom),attr1,attr2 FROM table;
ekovizig=>\q
Ilyenkor figyelni kell, hogy a lekérdezés fejlécestűl, láblécestűl átkerűl a szövegfájlba.
2. Adatok betöltése text fájlból
Pont szerű adatforrásokat, mint például a mérőkutak, források helyét és az ezekhez kapcsolódó
tulajdonságokat sokszor célszerűbb egy könnyen kezelhető excel táblázatban tartani a több fájlból
álló shape helyett. Az xls, ods formátumokat azonban a postgresql nem tudja értelmezni, így ezeket
be kell olvastatni az adatbáziskezelőbe. Az egyik lehetséges út, hogy csv formátumban fejléc nélkül
exportáljuk a táblát, ügyelve a szöveg jelölők elhagyására („akarmi” helyett akarmi), az
oszlopelválasztók egyértelmű használatára (ne legyen az excel táblázatban sehol pl ';' ) és arra, hogy
ne legyenek üres sorok a csv-ben! Ezután létre kell hozni egy táblát pl:
psql ekovizig -c „CREATE TABLE forrasok (eov_x double precision,eov_y double precision,
name varchar)”
Majd beolvastatni a csv-t:
psql ekovizig -c „\copy forrasok FROM /eleresi/ut/forrasok.csv DELIMITER ';' ”
Ezután a táblához hozzáadni egy egyedi azonosítót és a geometria oszlopot:
ALTER TABLE vizrajz.forrasok ADD COLUMN gid serial PRIMARY KEY;
SELECT AddGeometryColumn(’vizrajz’, ’forrasok’,’the_geom’,23700,’POINT’,2);
Ez utóbbi parancsból a zárójel utáni rész a séma név, tábla név,geometria oszlop elnevezése, srid,
geometria típusa, dimenziója.
Végül:
UPDATE forrasok SET the_geom=ST_SetSRID(ST_MakePoint(eov_x,eov_y),23700);
!!! A postgis AddGeometryColumn funkciója mellett pontot, vonalat, poligont a postgresql is kezeli
a geometry változó típussal!!!
3. Kézi adatfeltöltés
A legritkább esetben van szükség kézi adatbevitelre, így ezt a részt csak megemlítem, hogy ilyet is
lehet, részletekért a postgis manualt kell elolvasni a 33. oldal környékén!:)
INSERT INTO roads (road_id, roads_geom, road_name) VALUES
(1,ST_GeomFromText(’LINESTRING(191232 243118,191108 243242)’,-1),’Jeff Rd’);
forrás: postgis manual 33. oldal
4. Grafikus adatfeltöltés
Sajnos az ESRI szoftverek csak az ArcGis Szerveren keresztül tudnak felcsatlakozni az
adatbáziskezelőkhöz. Ugyan létezik egy zigGis nevű kiegészítés az ArcGis és a postgis közötti
kapcsolat létrehozásához, de a próba verzióval nem voltak túl jó tapasztalataim. Az AutoCad az
FDO betöltő segítségével olvassa és írja a postgis adatbázisokat, de eddig nem láttuk túl sok
értelmét használni bent a cégnél :).
Qgis nagyon jól kezeli a postgist, ahogy a lenti screenshotból is látható könnyű beolvasni az
adatokat, amiket ezután ugyanúgy kell szerkeszteni mint egy shape fájlt.
Nincsenek megjegyzések:
Megjegyzés küldése