OpenStreetMap

Mapeamento das aldeias e lugares de Portugal

Posted by ViriatoLusitano on 23 December 2017 in Portuguese (Português)

Introdução

Em Portugal os aglomerados populacionais tendem a estar dispersos e não concentrados num único centro urbano. Várias destas aglomerações situam-se a vários quilómetros do centro da freguesia, que é a menor divisão administrativa em Portugal, tornando-se assim muito difícil encontrar estes sítios se não tivermos o nome que os habitantes locais usam para se identificarem.

https://i.imgur.com/SYExQ6O.jpg

Comparação entre centros populacionais. À esquerda um sítio com várias aglomerações satélites e à direita um sítio onde a população está concentrada. Fonte: Bing

Acredito que já repararam que não existe uma base de dados livre que contenha os nomes ( e especialmente os limites) dos milhares de pequenos aglomerados urbanos que existem em Portugal. Não ter este tipo de dados torna-se num problema quando se tenta procurar por eles para propósitos de navegação por GPS ou simplesmente para ver onde ficam no mapa.

Decidi, então, adicionar na base de dados do OpenStreetMap estes dados. Por esse motivo perguntaram-me como é que eu as mapeava. Ora, para facilitar a explicação, elaborei este guia para que assim possas também ajudar!

Nota: Por aglomerados urbanos refiro-me a aldeias, quando em meio rural, e a lugares, quando em meio urbano.

Preparação

Em primeiro lugar precisamos de ter o JOSM já que vamos lidar com importações. Também precisamos de ter instalado um plugin chamado OpenData que vai permitir abrir ficheiros shapefile (shp).

https://i.imgur.com/cF2YMI5.png

Em segundo lugar vamos utilizar os dados disponibilizados abertamente pelo Instituto Nacional de Estatística (INE), mais especificamente os da Base Geográfica de Referenciação da Informação (BGRI). Estes dados contêm todos os lugares estatísticos que o INE utiliza durante os seus censos.

https://i.imgur.com/weBjWOq.png

Felizmente para nós os dados incluem o nome e limites das várias aldeias de Portugal. Também contêm informação de muitos lugares, mas não de todos — o que acontece é que, em zonas altamente urbanizadas e/ou inseridos dentro do perímetro de uma vila ou cidade, deixa de existir informação sobre o lugar.

Descarregar os dados

Voltando ao sítio do BGRI, temos a opção de descarregar os limites em todo o país, mas na minha opinião, e de maneira a facilitar o trabalho, recomendo descarregar ao nível mais pequeno, o do município.

https://i.imgur.com/rVJyccx.png

Vai ser descarregado um ficheiro arquivado .zip que posteriormente teremos de extrair para uma pasta.

https://i.imgur.com/yeOPWqy.png

Importação para o JOSM

No JOSM vamos primir as teclas Ctrl+O e seleccionamos o ficheiro com a extensão de .shp e esperamos um bocado enquanto decorre a importação.

https://i.imgur.com/AsfrL8J.png

Assim que terminar a importação vamos deparar com a seguinte situação:

https://i.imgur.com/ETGWWpB.png

Limpar os dados

Há muita informação que não nos interessa, por exemplo: códigos internos ou limites "residuais". Por isso de forma a que o nosso trabalho fique facilitado vamos remover tudo o que for "ruído".

Começamos por seleccionar todos os dados (Ctrl+A) e apagamos todas as etiquetas excepto as "LUG11" e "LUG11DESIG".

https://i.imgur.com/EqDqMUB.png

De seguida abrimos a janela de pesquisa (Ctrl+F) e escrevemos "residual" (não te preocupes com nenhum dos botões abaixo que por defeito já estão como queremos).

https://i.imgur.com/kqkV3Zq.png

Depois de seleccionados os dados que procuramos temos de os eliminar (Del).

https://i.imgur.com/JUjCIu1.png

Vai surgir uma janela a avisar que serão apagadas relações, elas não nos interessam por isso podemos confirmar a eliminação.

https://i.imgur.com/3vVMbeY.png

Agora queremos apagar o que forem linhas vazias já que não contêm nada, para tal abre novamente a janela de pesquisa e escreve "type:way untagged" e elimina o que aparecer seleccionado.

https://i.imgur.com/JUjCIu1.png

No final teremos os seguintes dados:

https://i.imgur.com/bZxkF6O.png

Agrupar as várias secções

Se seleccionarmos as linhas que existem, vamos reparar que há muitas com a mesma designação. Isto acontece porque nos dados do BGRI os lugares estão divididos em secções e para nós isto não nos interessam.

Para esse propósito temos de agrupar as várias secções com o nesmo nome/código numa só, assim revelando o verdadeiro limite das diversas aldeias e lugares.

Em primeiro lugar escolhemos uma linha (pode ser qualquer uma) e copiamos o código que está na etiqueta "LUG11".

https://i.imgur.com/j6MOkNK.png

Nota: Podes também copiar a designação, mas verifiquei que muitas vezes existe mais que um aglomerado com o mesmo nome num município e por isso não recomendo ir por este método.

Abrimos novamente a janela de pesquisa e colamos o código que copiamos. Após feita a pesquisa vamos ter a seguinte situação:

https://i.imgur.com/iLdvSHj.png

No passado havia um plugin chamado merge-overlap que facilitava o seguinte passo, mas este, no momento em que escrevo este guia, encontra-se inutilizável.

Por essa razão vamos por um método alternativo: traçamos uma linha que corresponda ao perímetro seleccionado. Se te esqueceres dos limites basta abrir novamente a janela de procura e inicia a pesquisa já que o código está memorizado.

Antes de traçarmos o perímetro, vamos primeiro copiar (Ctrl+C) ambas as etiquetas "LUG11" e "LUG11DESIG" para posteriormente as metermos na linha que irá ser criada.

https://i.imgur.com/6PLUZp8.png

https://i.imgur.com/F9zMZkN.gif

Feito o perímetro, vamos manter a linha seleccionada e colamos (Ctrl+V) as etiquetas "LUG11" e "LUG11DESIG" anteriormente copiadas. Depois copiamos o perímetro, criamos uma nova camada (Ctrl+N) e colamos o perímetro na mesma posição (Ctrl+Alt+V).

https://i.imgur.com/5xvGq4F.png

Para terminar vamos simplificar a linha (Shift+Y).

Importar os dados do OSM

Vamos agora descarregar os dados do OSM (Ctrl+Shift+↓).

https://i.imgur.com/ap2OA2X.png

De forma a facilitar a visualização dos mesmos sugiro aplicar o seguinte filtro com as opções que estão expostas na imagem abaixo:

boundary=administrative | place=* | ICC=Portugal | LUG11=*

https://i.imgur.com/fFXIKa6.png

Para utilizar a ferramenta de filtro basta a seleccionar no seguinte menu:

https://i.imgur.com/3VliCrH.png

Confirma que está activado e no modo inverso.

Adicionar a relação e etiquetas

Primeiro vamos criar a relação com as seguintes etiquetas e depois vamos incluir na relação a linha e o nó que representa o "centro" da aglomeração:

  • name=Póvoa
  • bgri:code=018494
  • place=neighbourhood
  • border_type=lugar
  • boundary=administrative
  • admin_level=10
  • source=INE - BGRI 2011
  • type=boundary

https://i.imgur.com/e8re5Wh.png

https://i.imgur.com/dhA77Oo.png

A negrito estão as três etiquetas que mudarão dependente da aldeia/lugar que estamos a tentar inserir, as outras serão sempre as mesmas em qualquer das situações.

No caso de "place=*" temos de ter em consideração o contexto do aglomerado:

  • Se estiver perto de outros (ou até dentro de um perímetro urbano) então é "place=neighbourhood" (lugares, bairros, urbanizações, etc.)
  • Se estiver longe de outros então é "place=hamlet" (aldeias)
  • Se for uma quinta/herdade então é "place=farm" (este último é um tanto raro)

Para a linha vamos atribuir a função de "outer" e para o nó a função de "admin_centre".

Feito isto, aceitamos a relação.

Para terminar vamos seleccionar novamente a linha que define o aglomerado (e a relação) e vamos atribuir as seguintes etiquetas:

  • admin_level=10
  • border_type=lugar
  • boundary=administrative
  • source=INE - BGRI 2011

Não esquecer de apagar as etiquetas "LUG11" e "LUG11DESIG".

Toques finais e envio para o OSM

De forma a que esteja devidamente organizada, recomendo incluir a relação recém-criada na relação da freguesia a que pertence da seguinte maneira:

  1. Averiguar a freguesia que este aglomeração faz parte (neste caso é a freguesia extinta do Vale de Remígio)
  2. Seleccionar a relação recém-criada na lista de relações (os dados ficaram a rosa)
  3. Procurar pela freguesia (ou freguesia extinta) na lista de relações e clica no botão "editar"
  4. Adiciona a aldeia/lugar seleccionado ao fundo da relação, atribuindo-lhe a função de "subarea"
  5. Confirmar a edição

Também é preciso ver se o nó contém a informação correta, isto é, que tenha o mesmo nome que a relação da aglomeração e mesmo tipo de "place=*".

Feito isto tudo, temos agora duas opções: ou enviamos o que foi feito para o OSM ou repetimos o processo para outro aglomerado.

Se repetirmos o processo podemos copiar a relação e adaptar-la de modo a poupar tempo.

Sem mais nada a referir, deixo aqui uma amostra do que poderão fazer, bom trabalho!

https://i.imgur.com/3G4zTti.png

Casos Excepcionais

  • Se o aglomerado se situa em duas ou mais freguesias (ou freguesias extintas) então criamos uma relação para cada uma sem que tenha a tag "place=*", no final cria uma nova relação que vai corresponder ao lugar/aldeia (exemplo).

Comment from Chrysopras on 13 April 2018 at 14:32

Hello ViriatoLusitano,

this is a wonderful how-to! However, in the discussion about a changeset which follows this approach, serious problems have been identified.

Therefore it would be wise to stop importing more data following these instructions until the problems mentioned there have been discussed and solved.

Best regards,

Chrysopras (just another mapper)

Comment from ViriatoLusitano on 13 April 2018 at 15:58

Hello Chrysopras, thank you for the heads up! The issue in question is about the permission of the data? Because if yes then INE the provider has releases the data with no restrictions, asking only for attribution which is already included in the source tag. http://mapas.ine.pt/download/metadados/bgri11.html

Comment from Chrysopras on 14 April 2018 at 09:57

Hello ViriatoLusitano,

thank you for your anwser! Well, the question is not only about the permission. As far as I understand, there are at least two more things which are questionable related to the mentioned changeset:

  • Adding data to OSM in this way is probably to be considered as an import, according to the description in the OSM wiki with its various sub-pages. In the past, many imports — which seemed very reasonable and useful at the first glance — later turned out to be problematic. This is why it seems wise to follow closely the import guidelines, especially to discuss any import first on the special imports mailing list and to document the import in the OMS wiki.

  • The other problem is the data structure. Normally, in OSM borders share their lines; e.g., if the borders of two different admin levels touch each other, the relations for both borders use the same line segment. Especially we avoid “approximative” touching borders, in which the two borders only touch more or less in some points and may even cross each other. But this is what happened in the mentioned changeset. To avoid this, more pre-processing of the data is necessary before actually putting it into the OSM database.

But I am no “the borders specialist”, of course ;–), just an ordinary mapper. I just wanted to leave a short notice here in order to put your attention to the discussion about that changeset. The people enganged in the discussion there are the experts, and even more the people on the special imports mailing list.

Best regards, Chrysopras

Comment from ViriatoLusitano on 11 May 2018 at 10:14

Got the following e-mail from the owner of the data, it states as follows:

"Bom dia, as minhas desculpas pela resposta tardia ao seu email. Confirmo que o conjunto de dados geográfico (CGD) relativos à Base Geográfica de Informação (BGRI) são open data e o INE terá todo o interesse em que os mesmos integrem a base de dados do OSM. Este CGD está harmonizado com a diretiva INSPIRE e publicado em serviço ATOM http://inspire.ine.pt/SU/atom/downloadservice.xml

Coloco em conhecimento a colega do Serviço de Difusão para eventuais esclarecimentos adicionais."

Translated:

"Good morning, my apologies for the late reply to your email. I confirm that the geographic data set (CGD) for the Geographic Information Base (BGRI) is open data and that INE will have every interest in integrating them into the OSM database. This CGD is harmonized with the INSPIRE directive and published in the ATOM service http://inspire.ine.pt/SU/atom/downloadservice.xml

I would like to inform you that I informed some colleages through the Broadcasting Service in case they need any further clarification."

Login to leave a comment