Pt:Querying pharmacies

From OpenStreetMap Wiki
Jump to: navigation, search
Linguagens disponíveis — Querying pharmacies
Afrikaans Alemannisch aragonés asturianu azərbaycanca Bahasa Indonesia Bahasa Melayu Bân-lâm-gú Basa Jawa Baso Minangkabau bosanski brezhoneg català čeština dansk Deutsch eesti English español Esperanto estremeñu euskara français Frysk Gaeilge Gàidhlig galego Hausa hrvatski Igbo interlingua Interlingue isiXhosa isiZulu íslenska italiano Kiswahili Kreyòl ayisyen kréyòl gwadloupéyen kurdî latviešu Lëtzebuergesch lietuvių magyar Malagasy Malti Nederlands Nedersaksies norsk norsk nynorsk occitan Oromoo oʻzbekcha/ўзбекча Plattdüütsch polski português português do Brasil română shqip slovenčina slovenščina Soomaaliga suomi svenska Tiếng Việt Türkçe Vahcuengh vèneto Wolof Yorùbá Zazaki српски / srpski беларуская български қазақша македонски монгол русский тоҷикӣ українська Ελληνικά Հայերեն ქართული नेपाली मराठी हिन्दी অসমীয়া বাংলা ਪੰਜਾਬੀ ગુજરાતી ଓଡ଼ିଆ தமிழ் తెలుగు ಕನ್ನಡ മലയാളം සිංහල ไทย မြန်မာဘာသာ ລາວ ភាសាខ្មែរ ⵜⴰⵎⴰⵣⵉⵖⵜ አማርኛ 한국어 日本語 中文(简体)‎ 吴语 粵語 中文(繁體)‎ ייִדיש עברית اردو العربية پښتو سنڌي فارسی ދިވެހިބަސް

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%.