OpenStreetMap

naoliv's diary

Recent diary entries

Colorindo mapas

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

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 Portuguese (Português)

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 Portuguese (Português)

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 Portuguese (Português)

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 Portuguese (Português)

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, 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 Portuguese (Português)

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 Portuguese (Português)

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 Portuguese (Português)

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 Portuguese (Português)

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 Portuguese (Português)

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 Portuguese (Português)

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

Ideas for a "suspect changesets classifier"

Posted by naoliv on 17 May 2014 in English (English)

Sometimes we find here in Brazil some imported data from +4 months ago, that nobody saw until now. Usually, these imports are followed by some other changesets deleting the old data + changesets modifying/adjusting the imported data.

We also see some changesets where people purposely/unconsciously delete a lot of data.

Could a Bayesian filter, SVM or something else be used to classify a suspect changeset? Could we use something smart for this task?

New users shouldn't be allowed to delete a lot of data

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

Really. It's tiring to keep fixing deleted administrative boundaries, for example.
Or revert changesets where people play SimCity on the map (and also delete a lot of things).

Older Entries | Newer Entries