Você está na página 1de 48

WORKSHOP PostgreSQL/PostGIS

1as Jornadas de Software Aberto para Sistemas de Informao Geogrfica

Sumrio

Instalao e configurao do PostgreSQL e PostGIS Criao e Introduo de Dados Funes e Operadores Espaciais Optimizao atravs da Indexao Espacial Configurao dos Sistemas de Coordenadas utilizados em Portugal

Integrao do PosgreSQL/PostGIS com outras ferramentas (Mapserver, gvSIG e Kosmo)

Instalao e Configurao
Sites do PostegreSQL/PostGIS:

http://www.postgresql.org/ http://www.postgis.org http://www.postgresql.org/download/ http://www.postgis.org/download

Downloads:

Instalao e Configurao
Verses PostgeSQL:

8.3.4 (2008-09-22) 1.3.3 (2008-04-12)

PostGIS

O PostGIS pode ser instalado no momento da instalao do PostgreSQL ou posteriormente. A instalao posterior pode ser necessria quando a distribuio do PostgreSQL no possui a verso mais recente do PostGIS

Instalao e Configurao

Demonstrao da instalao

Instalao e Configurao

Demonstrao da instalao
psql administrao atravs de linha de comandos

pgAdmin III administrao atravs de interface grfica

Instalao e Configurao
Instalao como um Servio para permitir a execuo do PostgreSQL com o arranque do computador Definir um utilizador/password (do SO) para ser utilizado para executar o Servio do PostgreSQL

Instalao e Configurao
Criao do cluster da base de dados Permitir ligaes ao servidor a partir de outros computadores Ateno!!!! Definio da lngua (interface e mensagens) Definio do encoding do Servidor e dos Clientes

Criao do utilizador do PostgreSQL com perfil de administrao

Instalao e Configurao
O PostGIS utiliza o PL/pgsql

Instalao e Configurao

Instalao e Configurao
O Stack Builder permite a instalao de ferramentas e mdulos adicionais O PostGIS pode ser instalado atravs do Stack Builder

Instalao e Configurao

Instalao e Configurao
Seleco dos mdulos e ferramentas a instalar
Seleccionar o PostGIS

Instalao e Configurao

Instalao e Configurao

Instalao e Configurao
Instalao do PostGIS

Instalao e Configurao
Instalao do PostGIS
Criao de uma base de dados espacial

Instalao e Configurao

Instalao e Configurao
Indicar um utilizador do Postgres com permisses de administrao

Instalao e Configurao
Indicar o nome da base de dados espacial que vai ser criada

Instalao e Configurao

Ficheiros de configurao do PostgreSQL

postgresql.conf Configurar se o servidor aceita pedidos de outros computadores:

pg_hba.conf Definir quais os computadores que podem aceder ao PostgreSQL:

# Todos os utilizadores atravs do endereo 192.168.12.19 host postgres all 192.168.12.10/32 md5 # Todos os utilizadores atravs da gama de endereos 192.168.0.0 host postgres all 192.168.0.0/16 md5

Criao e Introduo de Dados

Organizao dos dados no PostgreSQL

Uma instncia pode ter vrias bases de dados

bd1, bd2,

Uma base de dados pode ter vrios esquemas

bd1.schema1, b1.schema2 bd1.schema1.table1, bd1.schema1.table2

Um esquema pode ter vrias tabelas

Criao e Introduo de Dados

Organizao dos dados no PostgreSQL

Criao e Introduo de Dados

O PostGIS adiciona duas tabelas ao esquema public (de acordo com a especificao Simple Feature for SQL do Open GIS Consortium):

geometry_columns spatial_ref_sys

Criao e Introduo de Dados

Tabela geometry_columns

Tabela spatial_ref_sys

Criao e Introduo de Dados

Criao de uma base de dados espacial atravs da linha de comandos (psql)

1 Criar a base de dados (workshop1): psql -U postgres -c "CREATE DATABASE workshop1 WITH OWNER = postgres ENCODING = 'UTF8' 2 Criar os objectos do PostGIS: psql -d workshop1 -U postgres f C:\Programas\PostgreSQL\8.3\share\contrib\ lwpostgis.sql 3 Introduzir na tabela spatial_ref_sys os registos com a definio dos sistemas de coordenadas: psql -d workshop1 -U postgres -f c:\programas\postgreSQL\8.3\share\contrib\ spatial_ref_sys.sql

Criao e Introduo de Dados

Criao de uma base de dados espacial atravs do pgAdmin III

O modelo template_postgis permite criar bases de dados com todos os objectos do PostGIS: Funes - 663 Triggers - 3 Tabelas - 2

Criao e Introduo de Dados


Formas de representao da geometria: WKB Well-Known Binary (OGC) WKT Well-Known Text (OGC) EWKB e EWKT extenses do PostGIS s definies do OGC (coordenadas 3dm, 3dz e 4d)

Criao e Introduo de Dados


Representao WKT

POINT(0 0)
LINESTRING(0 0,1 1,1 2) POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1))

MULTIPOINT(0 0,1 2)
MULTILINESTRING((0 0,1 1,1 2),(2 3,3 2,5 4)) MULTIPOLYGON(((0 0,4 0,4 4,0 4,0 0),(1 1,2 1,2 2,1 2,1 1)), ((-1 -1,1 -2,-2 -2,-2 -1,-1 -1)))

GEOMETRYCOLLECTION(POINT(2 3),LINESTRING((2 3,3 4)))

Criao e Introduo de Dados


Criao de uma tabela espacial atravs de SQL 1 - Criar a tabela
CREATE TABLE workshop.pontos (gid integer, nome varchar, x float, y float);

2 Adicionar coluna da Geometria


SELECT AddGeometryColumn('workshop', 'pontos', 'the_geom', 27492, 'POINT', 2 );

3 Inserir registos
UPDATE workshop.pontos SET the_geom = SetSRID(ST_MakePoint(x,y), 27492);

Criao e Introduo de Dados


Criao de uma tabela espacial atravs do shp2pgsql
1 - Criar o ficheiro sql com os dados da shapefile shp2pgsql.exe -s 27492 -c -g the_geom -I caop_freg.shp workshop.t_caop_freguesias > caop_freg.sql 2 - Executar o ficheiro sql para criar a tabela e inserir os registos psql.exe -h localhost -p 5432 -d sasig -U postgres -f caop_freg.sql

Criao e Introduo de Dados


Criao de uma tabela espacial atravs do gshp2pgsql

Criao e Introduo de Dados


Criao de uma tabela espacial atravs de outras aplicaes

Quantum GIS Kosmo gvSIG

Criao e Introduo de Dados


Criao de uma tabela espacial atravs de outras aplicaes

Quantum GIS Kosmo gvSIG outros

Criao e Introduo de Dados


Criao de uma tabela espacial atravs de outras aplicaes

Quantum GIS Kosmo gvSIG outros

Criao e Introduo de Dados


Criao

de ndices Espaciais

CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometryfield] );

Exemplo:
CREATE INDEX t_caop_freguesias_the_geom_gist ON workshop.t_caop_freguesias USING gist (the_geom);

Criao e Introduo de Dados


Criao de Vistas Espacias
-

Permitem visualizar uma query como se fosse uma tabela espacial til quando se pretende mostrar apenas parte dos dados de uma tabela ou uma consulta que utiliza dados de vrias tabelas Podem ser visualizadas nas vrias aplicaes externas

Criao e Introduo de Dados


Criao de Vistas Espacias 1 Criar a View
CREATE VIEW workshop.v_caop_albufeira_fregs AS SELECT gid, dico, freguesia, concelho, distrito, the_geom FROM workshop.t_caop_freguesias WHERE dico LIKE 0801

2 Registar a View na tabela geometry_columns


INSERT INTO geometry_columns (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, coord_dimension, srid, type) VALUES ('', 'workshop', 'v_caop_albufeira_fregs', 'the_geom', 2, 27492, 'MULTIPOLYGON');

Funes e Operadores Espaciais

Configurao dos Sistemas de Coordenadas utilizados em Portugal

O PostGIS utiliza a biblioteca PROJ.4 para efectuar transformao entre sistemas de coordenadas As definies dos sistemas de coordenadas esto armazenadas na tabela spatial_ref_sys Correspondem aos sistemas de coordenadas definidos pelo EPSG

Configurao dos Sistemas de Coordenadas utilizados em Portugal

A definio dos sistemas de coordenadas utilizados em Portugal que vem no EPSG no inclui informao sobre os parmetros de transformao local Esta ausncia provoca erros que andam volta dos 100 metros necessrio incluir dados sobre a transformao local

Configurao dos Sistemas de Coordenadas utilizados em Portugal


Sistemas de coordenadas utilizados em Portugal

Datum 73 / Modified Portuguese Grid EPSG: 27492 (927492) Lisbon (Lisbon)/Portuguese National Grid EPSG:20791 (920791) - IGP Lisbon (Lisbon)/Portuguese National Grid EPSG:20790 - IGeoE ETRS89_1989_Portugal_TM06 EPSG:3763 - IGP ETRS89_1989_Portugal_TM06 EPSG:???? - IGeoE

Configurao dos Sistemas de Coordenadas utilizados em Portugal


Vrtice Geodsico GUEDA
Datum 73 x = -26674,768 y = 101381,708 Datum LX x = -26677,6 y = 101381,4 PT-TM06 x = -26676,4 y = 101379,97

Configurao dos Sistemas de Coordenadas utilizados em Portugal


Transformao atravs do mtodo Bursa-Wolf

Acrescentar a definio dos parmetros de transformao do datum local para WGS84

Datum 73
+proj=tmerc +lat_0=39.66666666666666 +lon_0=8.131906111111112 +k=1 +x_0=180.598 +y_0=86.98999999999999 +ellps=intl +units=m +towgs84=239.749,88.181,30.488,0.263,0.082,1.211,2.229

Datum Lisboa
+proj=tmerc +lat_0=39.66666666666666 +lon_0=1 +k=1 +x_0=0 +y_0=0 +ellps=intl +pm=lisbon +units=m +towgs84=-288.885,91.744,126.244,-1.691,0.410,-0.211,-4.598

Configurao dos Sistemas de Coordenadas utilizados em Portugal


Transformao atravs do mtodo das Grelhas

Instalar na directoria do proj\nad os ficheiros criados pelo Prof. Jos Alberto Gonalves (FCUP) Definir a varivel de ambiente PROJ_LIB e atribuir como valor a path para a directoria proj\nad Inserir na tabela spatial_ref_sys a definio dos sistemas de coordenas para utilizar o mtodo das grelhas

Configurao dos Sistemas de Coordenadas utilizados em Portugal


Transformao atravs do mtodo das Grelhas
Acrescentar

a definio do mtodo das grelhas para os datuns locais


Datum 73
+proj=tmerc +ellps=intl +lat_0=39.66666666666666 +lon_0=-8.131906111111112 +k=1.000000 +x_0=180.598 +y_0=-86.990 +units=m +nadgrids=ptd73

Datum Lisboa
+proj=tmerc +lat_0=39.66666666666666 +lon_0=1 +k=1.000000 +x_0=200000 +y_0=300000 +ellps=intl +pm=lisbon +units=m +nadgrids=ptdLX

Configurao dos Sistemas de Coordenadas utilizados em Portugal


Resultados EPSG entre 80 e 150 metros Bursa-Wolf 50 cm a 1 metro Grelhas 10 a 20 cm

Integrao do PosgreSQL/PostGIS com outras ferramentas

Existem vrias ferramentas que permitem o acesso e edio de dados em PostgreSQL/PostGIS


gvSIG Kosmo OpenJump