3. Import dat z formátu shapefile do databáze Postgis

Dozvěděl jsem se o několika možnostech importu dat z formátu shapefile do PostGIS. Shapefile můžeme importovat pomocí:

Data se mi podařilo převést pomocí shp2pgsql.exe, pro který je vstupem shapefile a výstupem soubor s příponou SQL. V tomto souboru se skrývá SQL příkaz CREATE TABLE "nazev_shapefile", kde v závorce jsou dále vypsány názvy všech jednotlivých sloupců vytvářené tabulky. Soubor dále obsahuje příkaz SELECT s funkcí AddGeometryColumn() pro přidání sloupce s geometrií a příkaz COPY "nazev_shapefile", kde dále jsou v závorce vypsány opět názvy všech sloupců FROM stdin; a následují všechna importovaná data získaná ze shapefile. Soubor ukončuje příkaz END;.

Dále pomocí psql.exe se nám podaří provést pžíkazy takto získaného SQL souboru a data importovat do PostGIS.

Spuštění shp2pgsql.exe se ve Windows provádí z příkazového řádku. Ten lze spustit po klepnutí na tlačítko „Start“ a „Spustit...“ příkazem „cmd“.

Na obrázku je vidět zadání cesty k souboru shp2pgsql.exe, dále zadání cesty k shapefile, (protože jsme v aktuálním adresáři, kde je shapefile umístěn stačí pouze jeho název, čili v našem případě „bez_at“) a nastavení parametrů.

Pokud budeme importovat více dat, můžeme si značně práci ulehčit. Abychom nemuseli opakovaně opisovat cestu k adresáři „..\bin“ instalace postgreSQL, lze do dávkového souboru (s příponou .bat) vložit následující příkaz: „SET PATH="C:\Programs\PostgreSQL\8.2\bin";%PATH%“ a dávkový soubor spustit. (Úplná cesta je zde uvedena pouze jako příklad)

Pro import více shapefile najednou lze rovněž použít dávkový soubor. Pro ukázku uvádím příkazy pro import souborů shapefile použitých pro tuto semestrální práci. Obsah souboru pak bude vypadat následovně: [1]

set PATH="C:\Programs\PostgreSQL\8.2\bin";%PATH%

shp2pgsql -i -D -s 3005 bez_at.shp bez_at > bez_at.sql
shp2pgsql -i -D -s 3005 ohne.shp ohne > ohne.sql
shp2pgsql -i -D -s 3005 les.shp les > les.sql
shp2pgsql -i -D -s 3005 porostni_skupiny_1994.shp porostni_skupiny_1994 > porostni_skupiny_1994.sql

psql -U postgres -f bez_at.sql -d postgis
psql -U postgres -f ohne.sql -d postgis
psql -U postgres -f les.sql -d postgis
psql -U postgres -f porostni_skupiny_1994.sql -d postgis

Tímto způsobem si značně usnadníme import dat, protože takto vytvořený soubor stačí již spustit. Pokud vše proběhne dobře, budeme mít data importovaná do databáze.

Pro vizualizaci dat v PostGIS lze opět použít například PgAdminIII. Po jeho spuštění bude v levé části, (pokud jste v instalaci neuvedli jinak), položka PostgreSQL Database Server 8.2. Po jejím rozklepnutí pgAdminIII vyzve k zadání hesla. (To je možné i uložit, aby se nemuselo při dalším přístupu znovu vyplňovat.) V případě úspěchu se nám zobrazí nainstalované databáze. Na následujícím obrázku je vidět, jak se dostaneme k vytvořené tabulce. Ikonou v horní části představující mřížku tabulky můžeme její data zobrazit nejrychleji (v obrázku je ikona podtržená).

Obrázek 7. Zobrazení dat v pgAdmin3.

Zobrazení dat v pgAdmin3.

Po importu shapefile při otevření tabulky budete zřejmě vyzváni k provedení VACUUM, včetně vysvětlení proč je tuto to dobré udělat. Její průběh mapují následující obrázky.

Obrázek 8. Doporučení provedení VACUUM

Doporučení provedení VACUUM

Obrázek 9. Nastavení VACUUM

Nastavení VACUUM

Obrázek 10. Výpis výsledků VACUUM

Výpis výsledků VACUUM