Cálculo de cobertura de Ecopontos

From OpenStreetMap Wiki
Jump to: navigation, search

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:

Eco7.png

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:

Eco4.png

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:

Eco3.png

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:

Eco5.png

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.

Eco6.png

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.