ETL GIS

From GeoBox

Revision as of 22:21, 8 December 2011 by Admin (Talk | contribs)
(diff) ← Older revision | Current revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Contents

Importar Códigos Postais

Site dos CTT

unzip Shapefile.zip
cd shp_jan_2009

ogr2ogr -skipfailures -overwrite -s_srs EPSG:20790 -t_srs "+init=pt:pttm06"  -f "PostgreSQL" PG:"host=localhost user=geobox dbname=cadastro password=geobox" cp4_jan_2009.shp 2> /dev/null

Importar profissões

Descarregar tabela do site de matadados do INE.

Site do INE

Abrir com OpenOffice e importa (usar o encoding Unicode; o separados TAB) Remover as primeiras linhas, e deixar um cabeçalho. Gravar como CVS

Abrir linha de comandos (consola)

Na linha de comandos, fazer:

cd Transferências
recode utf-16..utf-8 profissoesine.csv

Confirmar que o ficheiro está com bom aspecto:

head profissoesine.csv
"nivel"	"codigo"	"designacao"
1	"0"	"Profissões das Forças Armadas"
2	"01"	"Oficiais das Forças Armadas"
3	"011"	"Oficiais das Forças Armadas"
4	"0111"	"Oficiais da Marinha (NE)"
5	"0111.1"	"Oficial de Marinha"
5	"0111.2"	"Oficial de administração naval"
5	"0111.3"	"Oficial engenheiro naval"
5	"0111.4"	"Oficial fuzileiro "
5	"0111.5"	"Outros oficiais da Marinha e equiparados"

No pgAdmin III

CREATE TABLE profissao
(
  id serial NOT NULL,
  nivel integer,
  codigo character varying(12),
  profissao character varying(255),
  CONSTRAINT profissao_pk PRIMARY KEY (id)
);

copy profissao ("nivel","codigo","profissao") from '/home/geobox/Transferências/profissoesine.csv' delimiter '	' CSV HEADER

copy profissao ("nivel","codigo","profissao") from '/tmp/profissoesine.csv' delimiter '	' CSV HEADER

Importar farmácias

select f.nome, f.distrito, c.distrito_, f.concelho, c.municipio from anfarmacia f, cont_aad_caop2010 c where f.distrito = c.distrito_ and f.concelho = c.municipio

psql -d geotuga -U geobox -f /usr/share/postgresql/8.4/contrib/fuzzystrmatch.sql Bingo!

SELECT levenshtein('ÁGUEDA', 'AGUEDA')

Porque é que esta query retorna 4 linhas?

select distinct distrito from anfarmacia where distrito not in (select distinct distrito_ from cont_aad_caop2010)

select f.nome, f.distrito, c.distrito_, f.concelho, c.municipio, f.freguesia, c.freguesia from anfarmacia f, cont_aad_caop2010 c where levenshtein(f.distrito, c.distrito_) <= 2 and levenshtein(f.concelho, c.municipio) <= 2 and levenshtein(f.freguesia, c.freguesia) <= 2

Reserva Ecológica de Mangualde

Reserva Ecológica de Mangualde

Votar

Personal tools