OpenStreetMap

naoliv's diary

Recent diary entries

Oficina de OpenStreetMap em Campinas - SP

Posted by naoliv on 22 June 2015 in Brazilian Portuguese (Português do Brasil)

Dia 27 de junho, sábado, teremos uma oficina de OpenStreetMap em Campinas - SP, das 14:00 às 17:00, totalmente gratuito.

Pessoas que queiram aprender, conversar, tirar dúvida, trocar ideias ou discutir qualquer outro assunto relacionado ao OSM estão convidadas.

Inscrições e maiores informações em
http://revoada.net.br/oficina-maptimecps-introducao-ao-open-street-maps/

Colorindo rodovias

Posted by naoliv on 15 June 2015 in Brazilian Portuguese (Português do Brasil)

Mais uma da série "Formas diferentes de visualizar o mapa"

Não sei se todos conhecem, mas existe um tipo de relação específica para rotas de rodovias/estradas.

Todas as relações, de modo geral, servem para agrupar objetos com uma mesma característica ou para compartilhar elementos (evitando assim objetos desnecessários ou duplicados no mapa).

No caso das relações de rota, é algo muito útil para associar as várias partes de uma mesma rodovia, para representar diferentes trechos compartilhados¹, rotas turísticas (a Estrada Real é um bom exemplo que poderia ser mapeado no OSM), verificar continuidade, entre outras coisas.


¹ O que seria um "trecho compartilhado"?

Peguemos um trecho qualquer da SP-330, a Rodovia Anhanguera:
http://www.openstreetmap.org/way/241173757

Este mesmo trecho faz parte de "duas" rodovias (ou de outra forma, possui duas denominações):

Este pedaço poderia fazer parte de tantas outras rodovias ou rotas (turísticas, de ônibus, etc) quanto for necessário, sempre utilizando relações para isso.


Mas bem, quem trabalha com relações de rota já deve ter tido dificuldade de visualizá-las no JOSM. Ou a minha ignorância é grande e não consegui achar como fazer isso no JOSM ou ele realmente não tem uma opção de destacar todos os trechos que fazem parte de uma relação (e manter o destaque, mesmo selecionando e editando outros objetos).

Só que isso é muito fácil com, é claro, mágica!

Para os exemplos vamos trabalhar com essa pequena área: Área de exemplo

Quem abre o local no JOSM não enxerga em um primeiro momento o que compõe a SP-330 ou outra rodovia qualquer: Visualização padrão

Tudo é representado da mesma forma.

No JOSM até é possível selecionar a relação, dando para ver os objetos que a compõem: Relação selecionada

Mas se selecionar ou for trabalhar com outro objeto, o destaque some.

No entanto podemos sempre destacar todos os caminhos que fazem parte da relação da SP-330, independente dela estar selecionada ou não: Destaque relação

Na cor roxa temos todos os caminhos que possuem highway e que são elementos de uma relação de rota com ref=SP-330:

relation[type=route][ref=SP-330] > way[highway] {
        color: purple;
}

Mas que uso prático alguém poderia ter com isso, além visualizar a rodovia?
É possível enxergar rapidamente alguns trechos que deveriam fazer parte da relação.
Por exemplo, faz de conta que esqueceram de adicionar um dos lados da rodovia na relação. Teríamos uma das mãos sem destaque em roxo: Faltando na relação

Essa faixa da direita precisaria ser adicionada à relação.

Ou então para achar trechos errados, que não deveriam fazer parte da relação: Trechos errados

O trecho em roxo à esquerda claramente não deveria estar incluído nessa relação, já que é outra rodovia (a Washington Luís, SP-310).

Outra coisa que podemos fazer, ainda trabalhando nas rodovias, é destacar os trechos que possuem pedágio.

Trechos que pagam pedágio são representados por toll=yes no OSM, e devem ser utilizados apenas nas partes onde só é possível trafegar com o pagamento de pedágio.
Ou seja, o trecho anterior ao pedágio onde não existe alternativa a não ser seguir em frente e pagar a tarifa, e o trecho após o pedágio, onde só é possível trafegar tendo passado necessariamente pelo pedágio (são os trechos onde não tem como escapar do pedágio, portanto). Não é para se utilizar em toda a extensão da rodovia para indicar que ela possui concessão ou pedágio em alguns trechos.

É muito importante entender isso para representar de forma correta os pedágios na rodovia. Isso influencia diretamente o cálculo de roteadores que possuem a opção "evitar pedágios".

Ainda utilizando o mesmo local, podemos ver os trechos que estão marcados com toll=yes, em verde limão:

Pedágios

way[highway][toll=yes] {
        color: lime;
}

Se for analisar este trecho é possível ver que não está correto o uso de toll=yes (praticamente a rodovia inteira está com a tag, mesmo onde é possível dirigir sem pagar pedágio).

O correto nesse caso deve ser: Pedágios corretos

Dá para ver que quem for entrar na Rodovia Washington Luís, vindo do norte, não vai pagar pedágio. Quem for ficar rodando que nem bobo no trevo também não vai pagar pedágio. Mas obrigatoriamente quem veio do sul e está chegando neste trevo, teve que pagar pedágio, assim como quem está indo na direção sul também pagará.

Misturar vários parâmetros e cores também é possível.
Por exemplo, caminhos que fazem parte da SP-330 e que possuem a tag de pedágio:

relation[type=route][ref=SP-330] > way[highway][toll=yes] {
        color: purple;
        casing-color: yellow;
        casing-width: 2;
}

Para diferenciar dos outros exemplos, este utiliza um caminho roxo com bordas em amarelo: Pedágio e SP

Já temos aqui então outro uso prático para as cores: ver classificações ou marcações erradas. Todo mundo já pode começar a arrumar as relações quebradas e todos os pedágios das rodovias ;-)

Quem for mexer nessa parte de verificação e controle de qualidade das rodovias também pode, em algum momento, querer saber os trechos que algum usuário modificou por último (talvez para verificar locais que foram incorretamente reclassificados, adicionado pedágios, etc).

Não dá para fazer diretamente com MapCSS, mas dá para acessar a função de busca do JOSM através do MapCSS, com JOSM_search().
A busca de objetos de um usuário no JOSM é feita com user:NomeDoUsuário. Por exemplo, para ver o que eu modifiquei por último, basta buscar no JOSM por user:naoliv.
Essa busca só funciona nos objetos abertos no JOSM e apenas retorna a última pessoa que modificou os dados.

Unindo então a busca do JOSM por objetos modificados com algum parâmetro de seleção do MapCSS, podemos ver todas as rodovias que alguém modificou em alguma área.

Utilizando Ribeirão Preto como exemplo: Ribeirão Preto

/* destaca tudo o que fui o último a modificar */
way[highway][eval(JOSM_search("user:naoliv"))] {
        color: fuchsia;
        z-index: 1;
}

/* escurece todo o resto */
*[eval(JOSM_search("-user:naoliv"))] {
        color: #313131;
        fill-color: #313131;
        symbol-size: 1;
        icon-opacity: 0;
        symbol-stroke-color: #313131;
        text: "";
}

Os destaques em rosa (em homenagem ao nosso amigo leitoso) são as ruas onde a última modificação é minha.

Entendendo isso dá para aplicar mais estilos para várias outras situações ou necessidades.
Pode-se dar destaque em ruas que não possuem superfície, número de faixas, velocidade máxima, nome, etc.
É o que muitos dos estilos do JOSM fazem.

Location: Rodovia Anhanguera, Cordeirópolis, Microrregião de Limeira, Mesorregião de Piracicaba, São Paulo, Região Sudeste, Brasil

Colorindo mapas

Posted by naoliv on 28 May 2015 in Brazilian Portuguese (Português do Brasil)

Da série "Formas diferentes de visualizar o mapa"

Quem já abriu os limites de um país (ou região, estado, etc) no JOSM já percebeu que a exibição não é nada colorida (afinal, o JOSM é um programa de edição de dados e não de imagem): Padrão JOSM

Mas isso significa que não podemos ter algo colorido?
E se eu quiser o meu país nas cores dele?

Novamente utilizando mágica para aplicar estilos no JOSM, podemos ter o Brasil colorido de verde ou amarelo: Verde e amarelo

/* colore aleatoriamente os estados com verde ou amarelo */
relation[admin_level=4] {
        fill-color: eval(random()) > 0.5 ? yellow : green;
        fill-opacity: 0.5;
}

E se quiser os estados todos coloridos, cada um com uma cor? Colorido

/* estados com cores aleatórias */
relation[admin_level=4] {
        fill-color: eval(rgb(random(), random(), random()));
        fill-opacity: 0.5;
}

Já está dando quase para montar um livro de geografia do Brasil utilizando apenas o OSM e JOSM.

E se a pessoa quiser apenas variações de azul e verde? Verde e azul

/* deixa a cor vermelha sempre em 0, variando verde e azul */
relation[admin_level=4] {
        fill-color: eval(rgb(0, random(), random()));
        fill-opacity: 0.5;
} 

Utilizar random() não garante que a área seja sempre representada pela mesma cor.
E se a pessoa, então, quiser representar os países (e as suas áreas, regiões, enclaves, etc) sempre com a mesma cor?

Países

relation[admin_level=2] {
        fill-color: hsb_color(CRC32_checksum(tag("name"))/4294967296.0, 0.9, 0.7);
        fill-opacity: 0.5;
}

Cada área receberá uma cor baseada no seu nome, mantendo-a para enclaves, ilhas, etc.

Até aqui já dá para vender mapas, representar bairros de uma cidade com cores diferentes ou possivelmente exibir locais com alguma característica, restrição ou necessidade especial (um bom exemplo seria gerar mapas com cores de fácil diferenciação para pessoas com deficiência visual).

De forma mais proveitosa, dá para colorir áreas já trabalhadas, de acordo com algum critério, e áreas que faltam ser trabalhadas.
Por exemplo, o Blademir disse que vai deixar o Brasil inteiro verde: Distritos Isso representa todos os distritos (admin_level=9) já mapeados no Brasil.

/* todos os estados em vermelho */
relation[admin_level=4] {
        z-index: 0; 
        fill-color: red;
        fill-opacity: 0.3;
}

/* distritos em verde, com prioridade de renderização maior (no topo) */
relation[admin_level=9] {
        z-index: 1;
        fill-color: green;
        fill-opacity: 0.6;
}

/* esconde os caminhos */
way  {
        fill-color: black;
        width: 0
}

/* esconde todos os nós */
node {
        icon-opacity: 0;
        symbol-size: 1;
        symbol-stroke-color: orange;
        text: "";
}

Eu achava que tínhamos 2 estados completos, mas nenhum salvou.
O Skippern deu mancada no Espírito Santo e deixou buracos: Espírito Santo O resto mais bem mapeado do país também não está lá grande coisa: MS + SP

Também deu para ver que alguém (não vou falar quem fui ☺) acabou duplicando algumas relações: Duplicado

Reparem como uma das áreas apresenta um verde mais saturado (pela sobreposição de duas relações)

Colorir, portanto, também dá para ser útil nas edições.

Cidades do Brasil

Posted by naoliv on 26 May 2015 in Brazilian Portuguese (Português do Brasil)

Da série "Formas diferentes de visualizar o mapa"

O Brasil é muito grande e tem muitos locais habitados (eu sei disso e você também sabe): Locais habitados

Tudo isso é o que existe de place=city, place=town, place=village e place=hamlet.
Só que ter algo pontual, sem cor, sem informação nem qualquer outro atributo é muito chato de se ver.

Mas com o JOSM e um pouco de magia negra dá para, de forma muito simples, visualizar de outras formas (e fazer análises, se quiser).

Por exemplo, os mesmos dados coloridos com intensidade baseada na classificação do local (cidades maiores de 100 mil habitantes são verdes, entre 10 e 100 mil amarelas, menor de 10 mil alaranjadas, hamlets marrons e tem uns roxos que não lembro se talvez escaparam alguns place=isolated_dwelling):

Colorido

Melhor!
Mas e se representar o tamanho do local de acordo com a classificação também?
city > town > village > hamlet

Por tamanho

Já dá para ver de forma um pouco mais clara onde estão localizadas as maiores cidades e as menores comunidades (fica bem claro, por exemplo, que na região Norte tem bastante comunidade pequena e que elas estão muito próximas aos rios).

Ou de acordo com a codificação do JOSM (city = roxo, town = vermelho, village = laranja, hamlet = amarelo):

JOSM

Dá também para ver o óbvio (cidades grandes, em sua maioria, encontram-se no litoral): Litoral

Ou que as cidades (com mais de 10 mil habitantes) do oeste de SP encontram-se próximas às rodovias e ferrovias (muitas se desenvolveram por causa da ferrovia): Oeste de SP

Dá para brincar de muitos modos com a representação dos dados (não só com cidades, mas praticamente com qualquer coisa).

Também dá para visualizar objetos representados de forma incorreta. Por exemplo, muitos bairros estão representados como place=hamlet ao invés de place=suburb

Custom/specific/specialized/regional/whateveryouneed validation rules for JOSM

Posted by naoliv on 28 April 2015 in English (English)

After ~16 months from this we now have 3⁽¹⁾ specific/specialized/regional validation rules available for JOSM.

Czechs broke our hegemony of Portuguese speaking countries >:-(
But this is very good! It means better tests and possible⁽²⁾ better data in OSM.

Rules can be created for specific countries, areas (both as "knowledge area" or "geographical area"), tags, objects or whatever you want or need.

They could (and should!) be more and I am sure that every OSM community would benefit a lot with custom validation rules for their countries or specific needs.

⁽¹⁾ yes, I know how to count (sometimes, at least); both Portuguese rules should be merged into one in the future
⁽²⁾ possible because validation and testing isn't magical; it depends on who is analyzing and fixing the problems to have a good result

Analisando dias atípicos e changesets suspeitos

Posted by naoliv on 25 April 2015 in Brazilian Portuguese (Português do Brasil)

Para quem não conhece, temos um site com bastante tipo de estatísticas e visualizações de dados em http://resultmaps.neis-one.org/
Uma delas é a parte que mostra as estatísticas diárias de um determinado país, como a do Brasil

Dando uma breve olhada nos gráficos a gente acaba reparado em alguns picos bem atípicos para o padrão de edição em nosso país: Atípico

O pico maior de adição de nós ocorreu em 27 de fevereiro de 2014 (mais de 1 ano atrás), com 89404 nós adicionados (seguido de várias remoções).
Os dois próximos picos em verde ocorrem em 19 de janeiro desse ano, com 50133 nós adicionados, e em 9 de março, com 50862 nós.

Mas como encontrar o que foi alterado nesse dia sem precisar baixar o mundo inteiro ou ter uma base histórica do Brasil inteiro?
Através da API do OSM (devo uma cerveja pro pnorman pela sugestão)

Para obter os changesets de uma área precisamos do bbox e do período que desejamos.
O bbox conseguimos de forma bem fácil através do JOSM:

  • baixar a relação do Brasil
  • selecioná-la
  • Ctrl+i
  • pegar o bbox calculado: -73.9830625,-33.8689056,0.0,5.2842873

A data também temos (dia 27 de fevereiro de 2014), só precisando alterá-la para um formato reconhecido pela API.

Com um simples GET "http://api.openstreetmap.org/api/0.6/changesets/?bbox=-73.9830625,-33.8689056,0.0,5.2842873&time=20140226T000000,20140227T000000&closed=true" temos então todos os changesets no Brasil de 00:00 do dia 26 de fevereiro de 2014 até 00:00 do dia 27 de fevereiro de 2014. Ou melhor, deveríamos ter...

A API retorna apenas 100 resultados (portanto se o período tiver mais de 100 edições, não retornará todas).

Quebrando as requisições em períodos menores, de 1 hora (ou, em alguns casos, de meia hora), temos então todos os changesets de um dia inteiro.

Com cada id de changeset fica fácil obter os dados deles e analisar o que aconteceu: quem editou no Brasil, que horas, qual editor utilizou, quantos objetos adicionou, removeu, modificou, etc.

O bom disso é que abre muitas possibilidades: podemos analisar qualquer dia anterior onde há picos no gráfico (seja por adição ou remoção de objetos) ou então, futuramente, analisar os dados diariamente na busca, também, de edições suspeitas.

Não é nada complicado e dá para ser todo automatizado o processo.

Por essa pequena análise pudemos ver que um usuário alemão é muito ativo no Brasil (ou era naquela época, pelo menos), que houve uma modificação automatizada de nomes de ruas e também, infelizmente, uma importação...

A importação precisará ser analisada, junto com os outros changesets do usuário.
Outros dias atípicos também serão verificados na medida do possível.

Aceito correções de ortografia, Português e pedidos para explicar algo melhor, desde que saiba explicar :-)

Enxergando o mapa de outras formas

Posted by naoliv on 20 April 2015 in Brazilian Portuguese (Português do Brasil)

Dá para praticamente enxergar a área do estado e as principais rodovias utilizando apenas as pontes mapeadas em SP (bridge=*)

Pontes do estado de SP

Welcome message for new users in Brazil

Posted by naoliv on 9 December 2014 in English (English)

Since July 15 we are sending a welcome message to new users in Brazil.

My ugly-but-functional mirrored-naoliv bot parses the osmbot-test output (the ones that say "foo just started editing…") and automatically¹ sends a message.

The welcome message basically, as the name says, gives a welcome, points the user to the beginners guide, to our wiki portal, explains that things shouldn't be copied from other places and asks the user to always ask the more experienced mappers in case of doubts (something that seems wrong doesn't mean that it is).

The message also invites the user to join our mailing list, the forum and/or the IRC channel, if he wants (or directly answer the message if he has any doubts and feels more comfortable doing so).

It took 435 messages to have one person joining our #osm-br channel.
With a better stats, 12 users replied the welcome message (messages sent to viloan arrive to me)

I still need to answer most of them… :-/
This remembers me that I also need to think and discuss with other colleagues if these messages could be redirected to talk-br (so more people could answer the doubt and the answer won't be delayed if I am busy)

¹ Some people may argue that it's wrong to automatically spam the new users with a message, but it's a one-time-only friendly message (with useful information and defined together among some mappers). We just don't have enough people here to manually process and send the messages.

Mapeando novos locais sem imagem de satélite ou outros mapas

Posted by naoliv on 13 November 2014 in Brazilian Portuguese (Português do Brasil)

Como mapear um local que não existe na imagem de satélite?
É só dirigir por 1 hora, percorrer 60+ Km e ficar dando volta em uma rotatória que nem um bobo!

Há cerca de uma semana a reforma e duplicação da SPI 274/310 foi entregue. Obviamente este novo traçado ainda não existe nas imagens do Bing, MapBox ou mapas do IBGE.

Antes da duplicação e reforma tínhamos algo assim (eu esqueci de tirar um print dos dados anteriores):

Como eu não tinha nem ideia de como ficou o novo trecho, peguei o carro e fui gravando o trajeto dele, reparando nas novas entradas, saídas e como que eu iria passar pelo menos uma vez por cada local.

Depois de 1 hora dirigindo, cerca de 60 Km percorridos (não tem retorno perto, infelizmente) e várias voltas na rotatória (para tentar definir bem onde ela se posiciona), tinha um arquivo GPX com um trajeto do novo local: http://www.openstreetmap.org/user/naoliv/traces/1832775

Dá para perceber o tanto que tive que andar, por duas vezes, para poder retornar ao novo trecho:

Mas o novo trevo ficou, de certa forma, bem capturado:

Com um pouco de mágica (digo, trabalho):

E finalmente:

O Google não tem este trecho, o Bing também não, mas nós temos!

Location: Altos do Jaraguá, Araraquara, Microrregião de Araraquara, Mesorregião de Araraquara, São Paulo, Região Sudeste, Brasil

From the "steps to happiness series": thanking

Posted by naoliv on 24 October 2014 in English (English)

Thank you dear [editor] for so many changesets with only a single object. It's so nice to see users with less than 1 year having almost 21000 (yes, 21 thousand) changesets. It's even better to try to find something that they changed.

Thank you dear [editor] for allowing users to create objects only with name (and nothing else).
A sub-thank you for more "complex" objects, having only area=yes + name.

Thank you dear [editor] for so many changesets without comments.

Thank you dear [editor] for allowing users to delete and modify relations without any kind of warning.

Distritos (admin_level=9) no Mato Grosso do Sul

Posted by naoliv on 15 October 2014 in Brazilian Portuguese (Português do Brasil)

Com um bom tanto de trabalho, os distritos (de acordo com os dados do IBGE) do Mato Grosso do Sul foram todos mapeados em 3 changesets:

http://nrenner.github.io/achavi/?changeset=26050377
http://nrenner.github.io/achavi/?changeset=26059444
http://nrenner.github.io/achavi/?changeset=26086201

Até onde sei, apenas São Paulo, Espírito Santo (do Skippern) e agora Mato Grosso do Sul estão com os distritos completos.

Caso alguém tenha interesse em saber o processo (processo manual, é bom destacar) para isso:
http://wiki.openstreetmap.org/wiki/User:Naoliv/Workflows

Como não modificar dados suspeitos

Posted by naoliv on 3 September 2014 in Brazilian Portuguese (Português do Brasil)

Da série "Passos para uma vida mais feliz no OSM"

Você está lá feliz, editando vários dados e se depara com algo suspeito.
Esse algo suspeito pode ser:

  • objeto de algum usuário que você sabe que fez importação
  • objeto que você sabe que foi ilegalmente importado (mas que ninguém tá nem aí)
  • objeto que você desconfia que foi importado
  • algum objeto qualquer que, não importando o motivo, você simplesmente só não quer mexer nele

Apesar de ter vontade de selecionar essas coisas e apagar os dados (para que sumam da área que você está trabalhando e também suma do OSM), você não pode.

Mas o JOSM tem uma solução muito boa para isso!
Selecione os objetos (ou tudo que foi modificado pelo usuário que você não gosta, utilizando a pesquisa do JOSM com user:"Usuário do Fulano") e depois vá no menu EditarExpurgar...

Os objetos serão removidos apenas do JOSM (como se você não tivesse feito download deles), sem que sejam de fato apagados do OSM.

É uma forma muito boa de não estressar com objetos indesejados.

How to detect a wrong/improper/broken highway classification/hierarchy?

Posted by naoliv on 3 September 2014 in English (English)

Sometimes I see highways with a broken classification/hierarchy on the map. For example: Example 1

  • in green we have a small tertiary section connected to residential highways; or this small tertiary should be residential like everything else or we are missing some tertiary highways on the area
  • in red we see a residential section that should be, at least, tertiary (connecting the secondary to the tertiary highway)

Another example: Example 2

  • in green we see some residential sections that should be secondary, making it a continuous secondary highway
  • in red we see an isolated primary section (which probably should also be secondary)

Do we have any tools to detect (or help detecting) cases like this, where the classification/hierarchy is broken?

New Bing imagery

Posted by naoliv on 20 August 2014 in English (English)

Finally Bing has updated some old imagery here (from 10~12 years ago).
Unfortunatelly the new images are just a big and nice void: http://binged.it/YBiZVe

"Thank you", Bing.

Canais no IRC para falantes da língua portuguesa

Posted by naoliv on 18 August 2014 in Brazilian Portuguese (Português do Brasil)

Para quem ainda não conhece, há dois canais no IRC para quem simpatiza ou fala português:

Os dois canais estão no OFTC.

Usuários com dúvidas ou que queiram apenas bater um papo são bem-vindos em ambos.

Passos para felicidade

Posted by naoliv on 4 August 2014 in Brazilian Portuguese (Português do Brasil)

Como ser uma pessoa mais feliz no OSM:

  • desinscreva-se da talk-br
  • não dê a mínima para objetos importados e/ou ilegais

Data that I capture with my phone

Posted by naoliv on 27 June 2014 in English (English)

Unfortunately it's not possible to drive the car and at the same time take notes about streets and places, for example, but it's possible to capture data that can be useful in several projects.

What I am recently using is:

Dados que eu capturo com o celular

Posted by naoliv on 27 June 2014 in Brazilian Portuguese (Português do Brasil)

Infelizmente não dá para dirigir o carro e ao mesmo tempo anotar informações de ruas e locais, por exemplo, mas dá para capturar dados que podem ser úteis para vários projetos.

O que ultimanente ando utilizando é:

Things that I would like to have: vim syntax highlight for MapCSS

Posted by naoliv on 3 June 2014 in English (English)

If somebody have a file or option for this, please :-)

1000 edições

Posted by naoliv on 2 June 2014 in Brazilian Portuguese (Português do Brasil)

Milésima edição no OSM.
Se bem que hoje em dia isso não vale mais nada (porque quem usa o iD acaba tendo 3000 changesets em alguns meses).
Mas de qualquer forma, foram quase 3 anos para completar mil changesets (não de iD).

Older Entries | Newer Entries