Postgres PostGIS

background image

Obsługa baz danych przestrzennych w oprogramowaniu

PostgreSQL z rozszerzeniem PostGIS

oraz

Wizualizacja danych przestrzennych w QGIS

Krajowe warsztaty CASCADOSS

Zastosowania oprogramowania Open Source GIS

(FOSS4G ang. Free and Open Source Software for Geospatial)

w ochronie przyrody

12-13 lutego 2009, Warszawa

background image

2

1.

Wprowadzenie do PostgreSQL/PostGIS oraz Quantum GIS

PostgreSQL (dawniej Postgres i Postgres95) jest systemem zarządzania relacyjnymi

bazami danych RDBMS z rozszerzeniami obiektowymi, zgodnym ze standardem języka

zapytań SQL. PostgreSQL dostępny jest na platformy: AIX, FreeBSD, HP-UX, IRIX,

Linux, Mac OS, Microsoft Windows (2000, XP, 2003, Vista), NetBSD, OpenBSD,

Solaris i UnixWare. Oprogramowanie udostępniane jest na licencji BSD.

Oprócz PostgreSQL do otwartych systemów zarządzania bazami danych zaliczyć można

także: MySQL i Firebird. Wśród systemów zamkniętych (komercyjnych) warto

wymienić: Oracle, Sybase, IBM DB2 i MSSQL.

Strona domowa projektu:

http://www.postgresql.org/

PostGIS jest dostępnym na licencji GNU GPL rozszerzeniem systemu zarządzania

relacyjnymi bazami danych PostgreSQL. Oprogramowanie umożliwia wprowadzanie

danych geograficznych bezpośrednio do bazy, a także ich przetwarzanie.

Strona domowa projektu:

http://postgis.refractions.net/

Quantum GIS (wprowadzenie w skrypcie dotyczącym ćwiczenia w QGIS)

Ważne: QGIS nie jest kompatybilny z systemem operacyjnym MS Windows Vista.

Zalecane jest korzystanie z aplikacji pod systemami MS Windows XP lub 2000.

Strona domowa projektu:

http://www.qgis.org/

2.

Instalacja i uruchamianie PostgreSQL/PostGIS

2.1. Instalacja PostgreSQL

1. Otwórz folder:

D:\CASCADOSS\PostgreSQL\PostgreSQL_PostGIS_QGIS_INSTALL\

postgresql-8.3.3-1 i uruchom plik postgresql-8.3.msi

(w sali 14A na dysku C)

2. Postępuj zgodnie z wyświetlanymi instrukcjami. Ikona

oznacza konieczność

przejścia do następnego okna dialogowego:

ustaw język instalacji – domyślnie język angielski (

),

zapoznaj się z uwagami dotyczącymi instalacji (

),

background image

3

kliknij lewym przyciskiem myszy w symbol obok napisu „PostgreSQL”, położony

na najwyższej gałęzi „drzewa” i zaznacz „Entire feature will be installed on local

hard driver” – wszystkie składowe aplikacji zostaną zainstalowane na dysku

lokalnym (

),

w nowym oknie dialogowym wpisz następujące parametry:

Install as a service (box zaznaczony)

Service name: PostgreSQL Database Server 8.3

Account name: postgres

Account domain: (domyślnie nazwa komputera użytkownika – zostaw bez zmian)

Account password: (wybierz hasło)

(

),

po pojawieniu się ekranu Initialize database cluster wpisz następujące parametry:

Initialize database cluster (box zaznaczony)

Port number: 5432

Addresses: Accept connections on all addresses, not just localhost (box

zaznaczony)

Locale: (wybór użytkownika)

background image

4

Encoding (Server): WIN1250; (Client): WIN1250 (pozostaw domyślne)

Superuser name: postgres

Password: (wybierz hasło, może być inne niż poprzednio; Ważne: hasło to będzie

potrzebne podczas instalacji PostGIS)

(

),

jeśli ukaże się wiadomość systemowa Remote connections, zatwierdź OK,

w kolejnym oknie dialogowym zaznacz języki proceduralne, które będą

obsługiwane (

),

zaznacz wszystkie dostępne moduły, które mają być zainstalowane wraz

z oprogramowaniem PostgreSQL – najważniejszy to Adminpack,

naciśnij dwukrotnie

– aplikacja zostanie zainstalowana

gdy pojawi się ekran Installation complete! NIE uruchamiaj Launch Stack Builder

at exit (odznacz box – patrz poniżej)

naciśnij Finish. Instalacja programu została pomyślnie zakończona.

background image

5

2.2. Instalacja rozszerzenia PostGIS:

1. Otwórz folder:

D:\CASCADOSS\PostgreSQL\PostgreSQL_PostGIS_QGIS_INSTALL \postgresql-

8.3.3-1\Extensions i uruchom plik postgis_1_3_3_pg83.exe

(w sali 14A na dysku C)

2. Postępuj zgodnie z instrukcjami. Ikona

oznacza konieczność przejścia do

następnego okna dialogowego:

zapoznaj się i zaakceptuj (lub odrzuć – wtedy nie ukończysz instalacji!!!)

postanowienia licencyjne (

),

pozostaw zaznaczone PostGIS oraz Create spatial database – oba komponenty

zostaną uwzględnione w trakcie instalacji (

),

NIE zmieniaj domyślnego folderu, w którym zostanie zainstalowany program

(

),

na kolejnym wyświetlanym ekranie wprowadź następujące parametry:

User name: postgres

Password: użyj hasła dla “Superuser” podczas instalacji PosgtreSQL

Port: 5432

(

),

ustaw Database name: postgis,

background image

6

naciśnij Install, a następnie Close po zakończeniu procesu instalacji.

2.3. Uruchamianie PostgreSQL 8.3 z rozszerzeniem PostGIS i tworzenie struktury nowej

bazy danych

1.

Otwórz listę programów (Wszystkie programy) w Menu Start,

2.

Rozwiń zakładkę PostgreSQL 8.3 i wybierz pgAdmin III,

3.

W celu połączenia się z serwerem PostgreSQL Database Server 8.3 kliknij

PRAWYM przyciskiem myszy w jego nazwę, znajdującą się na liście Serwery

w Oknie obiektów i wybierz Połącz. Następnie wpisz hasło podane przy instalacji

programu i zatwierdź, klikając OK,

Zawartość serwera można przejrzeć, korzystając z przycisku „+” znajdującego się po

lewej stronie nazwy serwera w Oknie obiektów.

4.

Rozwiń listę PostgresSQL Database Server 8.3, a następnie kliknij prawym

przyciskiem myszy w gałąź Bazy danych i wybierz polecenie Nowa baza danych. W

oknie Nowa baza danych… wpisz następujące parametry:

w zakładce Właściwości wpisz odpowiednią nazwę bazy (Administration)

i wybierz „postgres” jako Właściciela,

w zakładce Uprawnienia nadaj Rolę „public” dla ALL (zaznacz box ALL

i naciśnij przycisk Dodaj/Zmień – rezultat swych działań ujrzysz w okienku

powyżej,

background image

7

zatwierdzaj zmiany przyciskiem OK. Utworzona zostanie pusta baza danych

o nazwie Administration.

W ten sposób utwórz kolejnych pięć pustych baz danych o nazwach: Environment,

Other,

Settlements,

Statistics,

Transportation,

pamiętając

każdorazowo

o uwzględnieniu wypisanych powyżej parametrów.

Liczba i nazwy tworzonych pustych baz danych zależne są od struktury bazy danych

(grup tematycznych), jaką posiadasz. Na potrzeby poniższego ćwiczenia należy

skorzystać z bazy danych przestrzennych dla obszaru Karpat, która podzielona została

na 6 grup tematycznych. Ich nazwy są zgodne z nazwami nowo utworzonych baz

5.

Do nowo zaprojektowanej struktury bazodanowej należy następnie zaimportować

wcześniej przygotowane dane (pliki *.backup). W tym celu:

kliknij prawym przyciskiem myszy na nową bazę (np. „Administration”)

i wybierz opcję Przywróć,

w polu Nazwa pliku odszukaj, korzystając z przycisku

i eksplorując folder

D:\CASCADOSS\PostgreSQL\PostgreSQL_backup_files

(w sali 14A na dysku

C), odpowiedni plik (np. „Administration.backup”)

,

zatwierdź wybór, klikając Otwórz, a następnie OK.

Poczekaj na zakończenie procesu odtwarzania bazy, a następnie zamknij okno

przyciskiem

lub

.

background image

8

Postępując zgodnie z instrukcją, przywróć kolejno pozostałe pliki *.backup wszystkich

wyszczególnionych baz.

Korzystanie z funkcji tworzenia plików *.backup umożliwia m.in. przenoszenie danych

do bazy znajdującej się na innym komputerze oraz zabezpiecza użytkownika przed utratą

danych w przypadku awarii komputera. Możliwe jest wówczas łatwe odtworzenie

struktury bazodanowej. W celu utworzenia pliku *.backup danej bazy należy:

kliknąć prawym przyciskiem myszy jej nazwę (np. „Administration”)

wybrać z listy opcję Backup,

w nowo otwartym oknie wybrać odpowiednią ścieżkę i nazwę dla tworzonego pliku,

ustawić parametry tworzonego pliku (opcje zaawansowane) lub pozostawić

ustawienia domyślne.

Wprowadzanie do bazy PostgreSQL/PostGIS nieprzetworzonych danych geograficznych

np. w formacie .shp opisano w części rozszerzonej niniejszego skryptu (pkt. 6).

3. Wizualizacja danych przestrzennych z bazy PostgreSQL/PostGIS

w programie Quantum GIS

Uwaga: Przed rozpoczęciem wykonywania dalszej części ćwiczenia należy sprawdzić,

czy na danym komputerze zainstalowano aplikację QGIS. W przypadku braku

background image

9

powyższego oprogramowania należy ściągnąć plik instalacyjny ze strony

www.qgis.org

oraz zainstalować aplikację, pamiętając o jego niekompatybilności z systemem Windows

Vista.

Celem poniższej części ćwiczenia jest wizualizacja danych przestrzennych z obszaru

Karpat osadzonych w bazie PostgreSQL/PostGIS. Możliwość wyświetlania, a także edycji

warstw wektorowych, rastrowych oraz warstw PostGIS i WMS (serwery Web Map

Service) daje m.in. aplikacja QGIS.

Na potrzeby poniższego ćwiczenia utworzony został plik projektu w formacie .QGS,

w którym zapisane zostały parametry połączenia z bazami Postgis, ustawienia wyglądu

poszczególnych warstw tematycznych oraz dodatkowo mapy w formacie GeoTiff,

umieszczone bezpośrednio na dysku jako osobne pliki (nie ma możliwości obsługi danych

rastrowych w bazie PostgreSQL/PostGIS). Aby otworzyć projekt:

1.

Przejdź do folderu:

D:\CASCADOSS\PostgreSQL\QuantumGIS_project_files i otwórz plik

D_Carpathian_DB.qgs

(w sali 14A C_Carpathian_DB.qgs na dysku C)

Aby zobaczyć właściwości otwartego projektu należy w zakładce Ustawienia wybrać

Właściwości projektu. We właściwościach możesz na przykład sprawdzić parametry

odwzorowania danego projektu (zakładka Projection).

background image

10

2.

Wizualizacji zawartości utworzonej bazy (kilku baz) danych dokonuje się poprzez

zaznaczanie lub odznaczanie odpowiednich warstw – „gałęzi drzewa”. Można także

dowolnie modyfikować parametry wyświetlania (kolor, rodzaj, grubość obrysu,

wypełnienie, symbol itp.), a także kolejność, w jakiej będą wyświetlane warstwy

(metodą „drag-and-drop”).

background image

11

3.

Ustaw warstwy rastrowe (grupa Thematic Maps) jako podkład do danych

wektorowych – przeciągnij grupę Thematic Maps na sam dół listy warstw

w legendzie, a następnie wyświetl mapę hipsometryczną oraz warstwy: Boundaries,

KEO Extent, Cities, Lakes, Rivers, Protected Areas, Priority Areas.

Rysunek 1. Wizualizacja danych przestrzennych dla obszaru Karpat.

4.

Zmodyfikuj funkcje wyświetlania wybranej warstwy (Cities). W tym celu

dwukrotnie kliknij w obszarze Legendy w warstwę Cities. W oknie Właściwości

warstwy przejdź do zakładki Etykiety, a następnie:

zaznacz opcję Wyświetlaj etykiety. Jako Pole zawierające etykiety wybierz City

name. W oknie z lewej strony zaznacz pole Czcionka i ustaw odpowiednie

parametry napisów – rozmiar, kolor i umiejscowienie – wyświetlone zostaną

etykiety wybranej warstwy,

kliknij pole Bufor (lewe okno) oraz zaznacz kwadrat Bufor etykiet?. Następnie

ustal rozmiar i kolor bufora, czyli tła, na jakim będą wyświetlane nazwy miast.

kliknij pole Pozycja (lewe okno) i ustaw przesunięcie napisów (X Offset,

Y Offset) tak, aby nie zasłaniały symbolu miasta, którego dotyczą.

Wszystkie parametry przedstawiono na poniższych zrzutach ekranowych.

background image

12

Zwizualizowane wcześniej dane przestrzenne zostały osadzone w przestrzeni

geograficznej.

Rysunek 2. Fragment mapy Karpat ze zmodyfikowanymi funkcjami wyświetlania warstwy
Cities (miasta).

5.

Istnieje również możliwość dodania do otwartej bazy danych warstwy z innej

PostGIS-owej bazy danych. W tym celu należy:

rozwinąć w menu programu QGIS zakładkę Warstwa i wybrać opcję Dodaj

warstwę PostGIS,

w oknie Dodaj tabelę PostGIS w części połączenie PostgreSQL kliknąć Nowy,

background image

13

w kolejnym oknie dialogowym wpisać następujące parametry:

Nazwa: np. Administration (lub inna)

Host: localhost

Baza danych: np. Administration (lub inna)

Port: 5432

Użytkownik: postgres

Hasło: (hasło dla superuser)

kliknąć OK i Połącz (może zaistnieć konieczność ponownego wpisania hasła).

4. Import danych w formacie *.shp do bazy PostgreSQL/PostGIS

za pomocą Quantum GIS

Jedną z możliwości zasilenia bazy PostgreSQL/PostGIS jest bezpośredni import danych

w formacie *.shp poprzez wtyczkę „SPIT” w programie Quantum GIS:

1.

Po uruchomieniu QGIS w panelu górnym wybierz Wtyczki

Spit

Importuj format

shape do PostgreSQL.

2.

W oknie SPIT – Narzędzie importu z pliku shape do PostGIS w części Połączenia

PostgreSQL wybierz z listy rozwijanej bazę danych, do której zostaną zaimportowane

pliki *.shp.

Jeśli połączenie z serwerem nie zostało wcześniej utworzone, żadna baza nie będzie

widoczna. Należy wówczas skonfigurować połączenie, klikając Nowy. Po wpisaniu

wszystkich parametrów (patrz okno poniżej) przeprowadź Test połączenia, a gdy

wynik jest pomyślny, zatwierdź przyciskiem OK.

background image

14

3.

Po ustanowieniu połączenia z serwerem za pomocą przycisku Dodaj wybierz pliki,

które chcesz zaimportować.

4.

Zatwierdź wybór plików, klikając OK.

5.

Poprawność zaimportowanych danych można sprawdzić, uruchamiając pgAdmin III

i odświeżając odpowiednią bazę danych w Oknie obiektów.

background image

15

CZĘŚĆ ROZSZERZONA

6. Konwersja danych w formacie *.shp

Import danych do bazy PostgreSQL/PostGIS za pomocą narzędzi

shp2pgsql.exe oraz psql.exe poprzez konsolę Command Prompt

Ważne: Proszę przygotować dane w formacie *.shp (skopiować do katalogu roboczego

D:\CASCADOSS\PostgreSQL\SHP) i zanotować, jaki nadano im układ współrzędnych.

W celu wprowadzenia dodatkowych danych przestrzennych do bazy, należy dokonać

konwersji danych z formatu *.shp na format *.sql.

1.

Otwórz listę Programów w Menu Start, rozwiń zakładkę PostgreSQL 8.3 i wybierz

Command Prompt

2.

Ustaw ścieżkę na:

D:\CASCADOSS\PostgreSQL\SHP>

w następujący sposób:

przejdź na dysk D poleceniem „

d:

” (zatwierdź Enterem)

(w sali komputerowej małej – 14A przejdź na dysk C)

,

background image

16

ustaw bieżący katalog roboczy poleceniem „

cd cascadoss\postgresql\shp

(zatwierdź Enterem)

3.

Uruchom narzędzie shp2pgsql i dokonaj konwersji danych w następujący sposób,

wpisując w linii komend:

D:\CASCADOSS\PostgreSQL\SHP>

"C:\Program Files\PostgreSQL\8.3\bin\shp2pgsql"

-s 32634 forest_CLC.shp forest_CLC > forest_CLC.sql

(zatwierdź Enterem)

Ważne: Możesz zostać poproszony o ponowne wprowadzenie hasła!

Wyjaśnienie składni:

-s <SRID> nazwaPliku.shp nazwaTabeli > nazwaPlikuSQL.sql

-s <SRID>

 kod EPSG (European Petroleum Survay Group) odpowiedni dla układu

współrzędnych, w naszym przypadku jest to UTM WGS-84 strefa 34N – kod 32634.

W przypadku innego układu należy odszukać odpowiedni kod w tabeli

SPATIAL_REF_SYS (pgAdmin III - patrz poniżej).

Najważniejsze kody:

2180 – PUW 1992

4326 – Układ geograficzny

32634 – UTM WGS-84 strefa 34N

background image

17

nazwaPliku.shp

 nazwa pliku w formacie SHP, który zamierzamy przekonwertować

nazwaTabeli

 nazwa tabeli wynikowej w bazie postgreSQL/postGIS

nazwaPlikuSQL.sql

 nazwa pliku w formacie SQL, który będzie wynikiem konwersji

4.

załaduj utworzony plik *.sql do bazy za pomocą narzędzia psql, wpisując komendę:

D:\CASCADOSS\PostgreSQL\SHP>

"C:\Program Files\PostgreSQL\8.3\bin\psql" -d

Environment -h localhost -U postgres -f forest_CLC.sql

(zatwierdź Enterem)

Ważne: Możesz zostać poproszony o ponowne wpisanie hasła!

Wyjaśnienie składni:

-d nazwaBazy -h hostname -U postgres -f

nazwaPlikuSQL

.sql

-d nazwaBazy

 nazwa bazy danych, do której importujemy dane przestrzenne

-h localhost



hostname

-U postgres

 użytkownik

-f

nazwaPlikuSQL

.sql

 nazwa pliku w formacie SQL, który importujemy

5.

uruchom pgAdmin III i sprawdź, czy dane poprawnie zaimportowały się do bazy o

nazwie „Environment”.

background image

18

Źródła:

1.

Introduction to PostGIS, 2007, Materiały szkoleniowe warsztatów FOSS4G2007 (Free

and Open Source Software for Geospatial 2007) 24-27 września 2007, Suite, Kanada.

http://www.foss4g2007.org/workshops/W-04/

2.

Strona internetowa projektu PostgreSQL

http://www.postgresql.org/

3.

Polska strona internetowa projektu PostgreSQL

http://www.postgresql.org.pl/

4.

Strona internetowa projektu PostGIS

http://postgis.refractions.net/


Wyszukiwarka

Podobne podstrony:
Postgrad Med J 2001 Woolfson 68 74
PostgreSQL 7
PostgreSQL
PHP PostgreSQL
Wprowadzenie do PostGIS
PostgreSQL, SQL, SQL, PSQL-wyklady borzyszkowski, PSQL-wyklady borzyszkowski, Ftp, Sql
konserwacja-bazy-postgresql
PostgreSQL Leksykon kieszonkowy psqllk
Postgres lab23
konserwacja bazy postgresql
Odzyskiwanie bazy danych PostgreSQL
BEZPIECZEŃSTWO DOSTĘPU DO DANYCH MS SQL SERVER POSTGRESQL, 9 semestr, SQL, RÓŻNE
Professional Linux Programming, R-04-t, PLP - Rozdział 4: Interfejsy PostgreSQL
Postgis for power users
Postgres lab2
Rozdzial 3 PostgreSQL

więcej podobnych podstron