Cálculo de cobertura de Ecopontos
Objectivo
Com o cálculo da cobertura de ecopontos pretende-se determinar qual a percentagem de ecopontos georreferenciadas no OSM na cidade de Torres Vedras, ou seja, determinar a sua cobertura. Vão ser analisadas as vinte freguesias existentes nesta cidade.
Para efectuar este trabalho, foi necessário recorrer a quatro fontes de dados distintas. Estes dados vão ser referidos na preparação dos dados, apresentada de seguida.
Preparação de dados
Para se proceder a este cálculo, são precisos dados de quatro fontes:
- IGP (CAOP);
- INE (População);
- Cm - Torres Vedras (localização dos ecopontos);
- OSM (para saber o que já está referenciado).
Os cálculos aqui apresentados foram efectuados sobre o pgAdmin III. Parte-se do princípio que já existe uma base de dados OSM, onde vão ser adicionadas todas as tabelas com informação das quatro fontes.
CAOP
Primeiramente é necessário a importação de dados CAOP, para a base de dados OSM. Essa tabela foi designada de cont_aad_caop2010, e pode ser obtida a partir de [1].
Inicialmente, através do terminal, escreveu-se o seguinte código para que não haja conflito entre codificações de texto.
export PGCLIENTENCODING=latin1
Em seguida, outro comando foi accionado para ignorar alguns erros menos relevantes.
ogr2ogr -skipfailures -overwrite -s_srs EPSG:3763 -t_srs EPSG:900913 -f "PostgreSQL" PG:"host=localhost user=geobox dbname=osm password=geobox" Cont_AAD_CAOP2010.shp
A tabela Cont_AAD_CAOP2010 é assim criada na base de dados OSM. Para finalizar a CAOP, é necessário escrever uns comandos em sql no pgAdmin III de modo a garantir a compatibilidade dos sistemas de coordenadas.
select updategeometrysrid('cont_aad_caop2010' , 'wkb_geometry', 900913) select setsrid(wkb_geometry, 900913) from cont_aad_caop2010
INE
Os dados relativos à população existente em Torres Vedras é de grande importância para se poder realizar uma comparação entre a população residente de uma determinada freguesia e o número de ecopontos existentes nessa mesma freguesia.
Para se poder utilizar a informação sobre a população, descarregou-se no formato Excel o quadro da população residente por local de residência (apenas se seleccionou freguesias de Torres Vedras) no ano de 2011, a partir de [2]. O ficheiro Excel foi tratado, tendo sido removido todos os cabeçalhos e armazenado num ficheiro CSV.
Em seguida, foi criada uma tabela de nome populacao no pgAdmin III com quatro colunas (id, nome, dicofre e numero). Esta tabela foi criada na base de dados de nome OSM.
create table populacao ( id serial NOT NULL, nome character varying(120) NOT NULL, dicofre character varying(12) NOT NULL, numero integer, CONSTRAINT populacao_pkey PRIMARY KEY (id) );
Posteriormente populou-se a tabela populacao com os dados :
copy populacao(nome,dicofre,numero) from '/home/geobox/Transferências/populacao.csv' delimiter ',' CSV
Como é possível constatar, a tabela contêm quatro colunas e o csv apenas contêm três. Isto deve-se ao facto que a coluna id é preenchida automaticamente. A tabela relativa à população existente em Torres Vedras está então pronta.
No decorrer da análise dos dados relativos à população, chegou-se à conclusão que o município de Torres Vedras contém dois casos muito particulares de freguesias não-contíguas. Isto criou o problema de informações não correspondentes entre os dados da CAOP e os obtidos no INE, onde no primeiro eram consideradas 22 freguesias (considera-se que as freguesias não-contíguas são duas distintas) enquanto os dados populacionais do INE consideram estas freguesias como uma só. Uma imagem obtida no QuantumGIS sobre este caso particular pode ser observada na seguinte imagem:
Como tal, optou-se por não considerar os dados populacionais relativos a Torres Vedras.
Cm - Torres Vedras
A localização de todos os ecopontos existentes em Torres Vedras foi possível ser visualizado em [3]. Recorrendo ao terminal e a alguns comandos foi possível obter as coordenadas exactas dos diversos ecopontos assim como uma breve descrição dos mesmos (rua onde se encontra, pontos de referência e/ou que tipo de ecopontos possui).
Inicialmente descarregou-se o código fonte HTML da página.
wget http://www.cm-tvedras.pt/viver/ambiente/limpeza-urbana/mapa/
Posteriormente foi realizado um tratamento a este ficheiro, de modo a filtrar apenas a informação relevante (latitude, longitude e descrição). Este ficheiro filtrado é então armazenado num ficheiro de nome ecopontos.csv.
grep GPoint -A 1 index.html | tr "\n" " " | sed 's/,[0-9]\+);/\n/g' | sed 's/GPoint(/|/g' | sed "s/); var marker = CriarPonto(point, '/|/g" | sed "s/','/|/g" | sed 's/\([0-9]\+\),\([0-9]\+\)/\1|\2/g' | awk -F "|" '{printf "%s|%s|%s\n", $2, $3, $4}' > ecopontos.csv
Obtêm-se assim o ficheiro csv para se povoar a tabela com informação. Mas antes deste passo, é necessário criar uma tabela para armazenar esta informação. Essa tabela, presente na base de dados OSM, foi criada com o seguinte comando no pgAdmin III.
CREATE TABLE ecopontos ( id serial NOT NULL, longitude double precision, latitude double precision, descricao character varying(1000), localizacao geometry, CONSTRAINT ecopontos_pkey PRIMARY KEY (id) );
É, agora, possível inserir a informação nesta tabela. Esta inserção é realizada recorrendo ao seguinte comando
copy ecopontos(longitude,latitude,descricao) from '/home/geobox/ecopontos.csv' delimiter '|' CSV
Como já foi referido anteriormente, a coluna id é preenchida automaticamente. Mas a coluna localizacao nem é preenchida automaticamente nem foi preenchida pelo ficheiro csv. Esta coluna vai ser preenchida através das colunas longitude e latitude e recorrendo a um comando especial que vai criar um ponto através das coordenadas. Esta coluna é de extrema importância pois é o tipo de coordenadas que são utilizadas no OSM. Para se povoar esta coluna recorreram-se aos seguintes comandos.
update ecopontos set localizacao = st_makepoint(longitude,latitude) update ecopontos set localizacao = SETSRID(ST_MakePoint(longitude, latitude),4326)
A tabela ecopontos fica assim completa com toda a informação relativa aos ecopontos existentes em Torres Vedras.
OSM
Para inserir a informação existente no OSM na base de dados, usa-se um backup do país inteiro, que pode ser obtido a partir de [4].
Em seguida, criaram-se várias tabelas na base de dados OSM através do seguinte comando, na linha de comandos.
osm2pgsql -H localhost -m -U geobox -W -d osm portugal.osm.bz2
Com este comando, são criadas várias tabelas na base de dados OSM no pgAdmin III com a informação existente do OSM.
Cobertura
Cálculo dos ecopontos existentes no OSM
Para determinar os ecopontos registados no OSM em Torres Vedras, foi efectuada a seguinte query:
select freguesia, count(osm_id) AS "Ecopontos OSM" from cont_aad_caop2010, planet_osm_point where municipio='TORRES VEDRAS' and amenity = 'recycling' and st_contains(wkb_geometry, way) group by freguesia
O resultado obtido desta query pode ser observado na seguinte tabela:
Cálculo dos ecopontos existentes em Torres Vedras
Para saber qual os ecopontos existentes em Torres Vedras, foi efectuado a seguinte query:
select freguesia, count(id) AS "Ecopontos oficiais" from cont_aad_caop2010, ecopontos where municipio='TORRES VEDRAS' and st_contains(wkb_geometry, st_transform(localizacao, 900913)) group by freguesia
O resultado obtido desta query pode ser observado na seguinte tabela:
Cobertura
Para uma melhor visualização do que existe na realidade em cada freguesia de Torres Vedras em comparação com o que está registado no OSM, foram adicionados duas colunas à tabela cont_aad_caop2010. Estas duas tabelas são referentes ao número de ecopontos existentes em cada freguesia, sendo que uma das tabelas é referente aos ecopontos existentes em Torres Vedras, e a outra coluna com o número de ecopontos referenciados no OSM.
Depois desta fase, pode-se visualizar uma tabela a comparar estas duas colunas com as diferentes freguesias. Para isso, recorreu-se ao seguinte código.
select freguesia, ecopontos_no_osm, ecopontos_existentes from cont_aad_caop2010 where municipio='TORRES VEDRAS'
Comparando o número de ecopontos registados por cada freguesia no OSM com o número de ecopontos existentes em Torres Vedras, obteve-se a seguinte tabela:
Visualização no Quantum GIS
Para uma melhor visualização dos ecopontos no município de Torres Vedras, utilizou-se o Quantum GIS, obtendo-se a seguinte imagem, onde os pontos a verde correspondem aos ecopontos existentes, e os pontos a roxo representam os ecopontos que estão referenciados no OSM.
Conclusão
Com este trabalho foi possível concluir que o município de Torres Vedras está ainda muito mal referenciado no que diz respeito a ecopontos. Quando existem mais de 300 ecopontos no município, apenas estão referenciados 5 no OSM. Daqui retira-se que a cobertura, demonstrada através da percentagem de ecopontos referenciados comparativamente aos existentes, é de apenas 1,46%, percentagem esta bastante baixa.