(There is an english draft of this entry on http://saltamocas.blogspot.com/2019/10/overpass-mapcss.html )
Overpass é uma poderosa ferramenta de data minning para o OpenStreetMap. Normalmente utilizada para extrair dados, esta ferramenta também nos permite realizar análises de dados, com o objetivo de verificar a fiabilidade, consistência e validade dos dados. Um exemplo deste uso é descrito na entrada anterior deste diário.
Embora os métodos mais comuns para analisar dados sejam feitos por meio de observação de dados e gráficos, para informações geográficas a componente visual desempenha um papel ainda mais importante; certamente não será fácil identificar o desalinhamento entre um prédio e a estrada próxima, quando pretendemos ter um mapa agradável e harmonioso, apenas olhando nomes e números numa folha de cálculo.
Pela simples observação do mapa, esse desalinhamento é clara e facilmente identificado.
Overpass permite a utilização de uma linguagem simples, semelhante ao CSS, para estilizar os elementos geográficos no mapa, designada MapCSS. Dessa forma, é muito fácil colorir estradas com vermelho e os rios com azul. Ou alterar a largura das estradas de acordo com sua classificação.
O exemplo aqui utilizado, foca-se em elementos de água como rios, ribeiros e canais. Visualizando o mapa com um zoom baixo e, portanto, não muito detalhado, permite-nos ter uma visão geral da área que pretendemos analisar.
Por uma questão de clareza, para salientar os elementos que queremos analisar, a opacidade do mapa foi reduzida para um valor de 0,4 (na opção Configurações> Mapa> Opacidade das Telas). Para reduzir o ruído no mapa, desmarca-se a opção “Mostrar algumas estatísticas sobre dados carregados e exibidos”, bem como é activada a opção “Não mostrar elementos pequenos como os POIs.”, nesse mesmo ecrã de configurações.
Ocultar a aba lateral esquerda do editor de código, clicando o botão “Mostrar mapa largo” por baixo dos botões de zoom, permite visualizar um mapa mais amplo.
Todos os elementos relacionados com água, são representados em azul opaco. Pequenos elementos, como um vau (ford=yes), são representados através de pequenos círculos castanhos. Elementos suspeitos são exibidos em vermelho. A intermitência das linhas é representada com linhas tracejadas.
Os cursos de água menos importantes, como as valas ou canais, são representadas por uma linha pontilhada fina.
Todos esses atributos são definidos com nossos próprios critérios na área MapCSS do script.
Como exemplo, a linha
way[waterway=river]{text:name;opacity:1; color:blue; width:5;}
estiliza rios com uma linha opaca azul com a espessura de 5 pixel. Apresenta ainda o nome (name) do rio.
A espessura da linha pode assim representar a importância da hidrovia. Um rio tem uma representação mais espessa do que um riacho.
Esta metodologia permite identificar visualmente situações suspeitas, como um rio que flui para uma ribeira.
Para que um elemento seja considerado um erro, é necessário definir qual a condição para que a sua representação passe a vermelho. As regras para definir um erro, poderão ser as regras que encontramos no wiki.openstreetmap: um rio deve ser uma linha, portanto, qualquer nó ou área com a tag waterway = river será considerada incorreta.
Dessa forma, definimos em MapCSS, que uma área contendo a tag waterway = river deverá ser representado a vermelho.
area[waterway=river]{text:name;opacity:1; color:red; width:5;}
Assim, podemos observar pelo menos duas situações duvidosas na imagem acima, considerando o alerta vermelho. Ao ampliar o mapa e clicar nos elementos vermelhos, obtemos as informações necessárias para entender e corrigir o problema. O elemento vermelho é um curso de água, waterway = canal, definido numa área. Isso não será adequado, pois um canal só pode ser tag de uma linha.
Nestes casos considerados de erro, os elementos podem ainda não ser renderizados corretamente no mapa. Neste caso específico, o mapa desenha uma linha azul a envolver uma área transparente, que não corresponde ao que pretendemos visualizar, uma área preenchida a azul.
Outras situações suspeitas não são representadas em vermelho e só podem ser detectadas por observação.
Intermitências alternativas de um fluxo de água, linhas quebradas ou rios que não desaguam, são situações que merecem a nossa observação e eventual correção:
As relações são apresentadas por uma linha violeta transparente sobre os nós ou as linhas que a constituem. Não deverão ser consideradas situações de erro.
Resumindo, Overpass permite
- Consultar e extrair informação
- Criar resumos quantitativos
- Criar mapas analíticos
A query utilizada neste exemplos pode ser executada em https://overpass-turbo.eu/s/NaE. Está incompleta e poderá conter incorreções.
A query é aplicada na área visível do mapa em ecrã, pelo que grandes áreas poderão implicar maiores quantidades de dados a importar bem como um maior tempo de execução.
A aplicação dos estilos, poderá auxiliar na análise de inúmeras situações distintas; a rede viária ou a integração dos landuse residential, comercial e industrial nas áreas urbanas, são dois de mil exemplos que poderiam ser aqui dados.