ETL GIS
From GeoBox
Contents |
Importar Códigos Postais
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.
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

