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