Pt:Querying pharmacies

From OpenStreetMap Wiki
Jump to navigation Jump to search

Introdução

Nesta página pretende-se apresentar um conjunto de queries (algumas podem ser vistas em [1])que permitam realizar uma análise à rede existente de farmácias. Esta página serve de complemento a Pt:Cálculo da Cobertura de Farmácias, apresentando o relacionamento com outros dados de forma diferentes.

As farmacias na base de dados OSM podem ser obtidas através da restrição: amenity=pharmacy, que pode ser encontrada em Pt:Map_Features#Amenity.

Para tal, procedeu-se à importação da base de dados do OSM (este processo pode ser visto em [2]) para o programa pgAdminIII, onde foram executadas as queries.

Com este conjunto de queries é possível comparar, cruzar ou obter informação relativa às farmácias e outros dados. As queries relativas unicamente aos equipamentos de saúde encontram-se em Equipamentos de Saúde e em Pt:Análise da rede de equipamentos saúde.

Quantificação e União de dados

Para saber quais as farmácias repetidas(marcadas como ponto e simultaneamente como polígono)e a sua respectiva localização executa-se a seguinte query:

select distinct p.name, po.name, st_astext(p.way)
from planet_osm_point as p, planet_osm_polygon as po
where p.amenity='pharmacy' and po.amenity='pharmacy' and p.name=po.name and intersects(p.way,po.way);

Assim, para facilitar as queries foi criada uma tabela farmácias, onde se juntam todas as farmácias (pontos e poligonos) e em que as colunas desta tabela, serão o id (osm_id), name e way (localização).

create table farmaciaOSM as select osm_id,name,way from planet_osm_polygon where amenity='pharmacy';

insert into farmaciaOSM select osm_id,name,way from planet_osm_point where amenity='pharmacy';

Obtenção de dados

Para além da base de dados OSM, também foi necessário dados das seguintes fontes:

  1. IGP (CAOP)[3]
  2. Portal da Saúde (Farmácias) [4]

Cobertura

Primeiramente é necessário a exportação de dados CAOP usando o PostGis, que pode ser feito como em Cálculo_da_Cobertura_da_Rede_Viária, essa tabela foi designada de caop.

Para saber as farmácias (pontos) que existem num município (Por exemplo, Braga), usa-se a seguinte query:

select name
from farmaciaosm, caop
where st_contains (st_transform(the_geom, 900913), way) 
and municipio ilike 'braga';

Comparação com dados reais

No site do Portal da saúde [5] é possível obter o ficheiro Excel com as farmácias existentes em Portugal e com as suas coordenadas.

É necessário um pré-processamento dos dados de modo a substituir as letras Latin-1 por UTF-8, ou seja retirar Á, Ê, Õ, Ç, etc. As coordenadas também foram alteradas de modo que após a remoção dos outros campos, e ter guardado em ficheiro .csv, a primeira linha do ficheiro apresentava-se da seguinte forma:

PIMENTEL;POINT(-7.934547 39.464245)

Neste pré-processamento apenas se mantiveram os nomes e as coordenadas, ignorando as moradas e códigos postais.

Para importação do ficheiro csv, utilizou-se a query:

CREATE TABLE farmacia ("nome" text, "way" geometry);
copy farmacia (nome, way ) from '/home/geobox/farmacia.csv' delimiter ';'

Para determinar a que município pertence alguma farmácia utiliza-se a query:

Select nome, municipio 
from farmacia, caop 
where nome ilike 'Ribeirao' and st_contains (st_transform(the_geom, 900913),ST_transform(st_geometryfromtext(way,4326),900913)) ;

Para quantas farmácias oficiais existem em cada município, basta usar a seguinte query:

Select municipio, count(f.name) as "farmacias oficial"
from caop, farmacia as f
Where municipio='BRAGA' and st_contains (st_transform(the_geom, 900913),ST_transform(st_geometryfromtext(f.way,4326),900913))
group by municipio

Da mesma forma também se obtém o numero de farmácias marcadas no osm:

Select municipio, count(o.name) as "farmacias osm"
from caop, farmaciaosm as o
Where municipio='BRAGA' and st_contains (st_transform(the_geom, 900913),o.way)
group by municipio;

Obtemos a seguintes tabelas:

Município farmacias oficial
BRAGA 31
Município farmacias osm
BRAGA 13

Aqui podemos verificar que o município de Braga tem pelo menos 18 farmácias não marcadas no OSM.

Conclusões

O projecto da cobertura das farmácias é um projecto a continuar, pois ainda existem passos a serem cumpridos como a comparação com a densidade populacional, ou até comparar estes dados com as vias existentes ou até transportes públicos. Conclui-se que ainda existe pouca cobertura em alguns munícipios e muitas farmácias sem nome, pelo que esta comparação com os dados oficiais se torna importante, assim este trabalho torna-se importante até que a cobertura seja de 100%.