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

 

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

 

 

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

 

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

 

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

 

 

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

 

 

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

 

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

 

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/