Escolas Municipais em Recife

Srs,

Esta é primeira tentativa de fazer upload de dados para o OSM, não mapas ou alterações.

Encontrei no site de dados abertos da Prefeitura do Recife ( http://goo.gl/iaT2NG ), uma lista das escolas municipais, em formato GEOJSON. Antes que perguntem, vejam na página dos dados que estes estão sob a licença ODbL.

Achei que é um dado interessante para se colocar no mapa do OSM, então começei a trabalhar os dados para enviá-los.

Começei com uma conversão para o formato SHP ( http://ogre.adc4gis.com/ ) e depois abri o resultado direto no JOSM salvando para o formato OSM final.

Neste momento eu me deparei com uma série de tags em cada objeto, explicados no Dicionário de Dados ( http://goo.gl/g5wtny ), a saber :

<escola_codigo>,<escola_tipo>,,<escola_nome>,,<tipo_predio>,<mec_codigo>,<qtd_anexos>,<existe_biblioteca>,<existe_quadra>,<laboratorio_informatica>,<sala_professora>,,<qtd_atendidos>,<atendimento_especial>

Destes, eu resolvi exportar somente as seguintes :

<'codigo_municipal'/>    
<'codigo_MEC'/>

Além de converter a em :

<'addr:place'/>
<'addr:street'/>
<'addr:housenumber'/>

A <escola_nome> em <‘name’/> e a <escola_tipo> em amenity::‘*’ /> de acordo com o tipo, por exemplo creche para kindergarten, escola para school.

No caso de <escola_tipo> mais estranhos, deixei amenity::school e adicionei uma <tipo_escola> com uma especialização, de acordo com os dados originais.

Acho que do jeito que está agora, pode ser usado no OSM, mas gostaria de ouvir a opinião dos mestres.

Segue o link para um ZIP com o arquivo GEOJSON original e o OSM final ( http://goo.gl/1b45o5 )

Fico no aguardo para saber se passo no ENESM

Marcelo Pereira

Olá Marcelo,

Seus dados são excelentes (se comparados com outros dados com que eu já trabalhei) e vão precisar de poucas alterações (todas relativamente fáceis - para este momento, não para depois). Eu já teria feito elas, mas sei que você quer se familiarizar com o processo, então vou deixar pra você fazer. São mais “preciosismos”, aquela vontade de deixar tudo ajeitadinho e uniforme em todo o país. Se você seguir todas essas sugestões, por mim você já pode fazer o upload direto. Se você quiser pular algum desses passos (ou todos), me avise ou me passe o seu conjunto editado pra que eu o complemente antes do upload, ok?

Coisas que eu sugiro que você faça antes do upload (e como eu as descobri):

  1. Adicione uma tag source para identificar a fonte das suas informações. Isso informa outros mapeadores quão confiável a informação é. No seu caso, basta “source=PR” (onde PR = Prefeitura do Recife). Como eu descobri: selecionei todos os elementos no JOSM (Ctrl+A) e verifiquei as tags no painel de propriedades (se estiver invisível, vá em Windows > Properties/Memberships). Todas as tags usadas em pelo menos um elemento são listadas ali. Nos próximos passos, usei o seguinte pra verificar os valores de cada tag: cliquei em “” e vi os valores na listagem, depois pesquisei (Ctrl+F) por elementos com cada valor que me pareceu suspeito. A busca pode ser feita sempre assim: “tag”=“valor suspeito” (inclua as aspas para funcionar mesmo com espaços e tags com “:” no nome).

  2. Tags novas: use um prefixo que identifique quem usa essa tag (já que o OSM não as usa). Isso reserva um “namespace” pra essas tags. Ao fazer isso, procure manter o mesmo nome do parâmetro original (mesmo que menos inteligível), isso ajuda na hora de atualizar os dados. Por exemplo, ao invés de “tipo_escola”, use “pr:escola_tipo” (escola_tipo é como aparece dentro do GeoJSON que você forneceu). O mesmo vale para “codigo_MEC” (sugestão: “pr:mec_codigo”) e “codigo_municipal” (sugestão: “pr:escola_codigo”).

  3. Revisando os nomes (selecione todos os elementos e veja a lista de nomes no painel de seleção do JOSM, se estiver invisível vá em Windows > Selection), notei que poucos elementos têm uma designação do que representam (escola, centro profissionalizante, etc.). Já que usamos amenity=school pra uma variedade de coisas, coloque o que está na sua tag “tipo_escola” como prefixo do nome (caso já não exista esse prefixo no nome - os centros profissionalizantes todos têm). Isso poderia ser feito para as creches também (já que amenity=kindergarten pode ser usado pra mais coisas além de creches). Um exemplo de onde isso é fundamental é na escola (e seu anexo homônimo) “Casa Amarela”. Se você não passar esse prefixo pro nome, vai aparecer “Casa Amarela” no mapa duas vezes e os usuários não vão saber qual é qual. Pior, mesmo que busquem, não poderão facilmente diferenciar as duas coisas. Pra resolver isso, a escola poderia receber o nome “Escola Casa Amarela” e o anexo “Anexo da Casa Amarela” (ou algo similar). Em outros casos, a falta do prefixo apenas deixaria os usuários um pouco em dúvida, mas se podemos adicionar o prefixo, acho melhor fazer isso. Se você passar esses prefixos pro nome, você poderia deixar a tag tipo_escola de fora. Se o seu objetivo for permitir selecionar esses elementos por tipo futuramente, eu sugeriria algo que ocupa menos espaço na base: converter a tag original (que daria origem a pr:escola_tipo), sem modificação (teria os valores “Esc”, “Anx”, “Cre”, etc.).

  4. Alguns poucos nomes estão todos em letras maiúsculas, o ideal seria formatá-los como os demais (apenas a inicial maiúscula). A formatação ideal é a mesma de títulos de livros: inicial sempre maiúscula, artigos/preposições/conjunções (e, ou, de, do, da, dos, das, no, na, etc.) sempre em minúsculas, acrônimos e abreviações de até 5 letras totalmente em maiúsculas e, se mais de 5 letras, apenas a inicial maiúscula. No seu conjunto, há uma exceção pra esse caso dos acrônimos: o bairro “Cohab” (que é um acrônimo para Conjunto Habitacional) é comumente escrito só com a inicial em maiúscula (inclusive, o artigo da Wikipédia parece assim), então eu faria uma exceção. O mesmo não vale para coisas como UTEC, NUPI e UR.

  5. Das 4 unidades tecnológicas, 2 se identificam como UTEC, outras como Unidade Tecnológica. Acho que você pode identificar as 4 como UTEC. Em todos esses casos, use uma tag adicional (alt_name, ou official_name) para colocar o nome desabreviado, no formato “Unidade Tecnológica [resto do nome]”. Sugiro algo similar pro único NUPI que tem nesse conjunto de dados. Desabreviar é importante para que a busca retorne resultados caso o usuário procure pelo nome desabreviado.

  6. Tem 1 único caso em que tipo_escola=Profissionalizante e parece ser uma exceção, creio que seria igual a tipo_escola=“Escola Profissionalizante”.

  7. Há 4 casos em que “Escola Municipal” foi abreviado como “E.M.”. O padrão que tenho adotado aqui em Porto Alegre é sem os pontos (seria apenas “EM”), talvez faça sentido fazer o mesmo por aí (acho que fica mais elegante, mas apenas copiei o padrão que as pessoas adotavam em listagens de endereço em outros sites). Além disso, sempre que aparecer “Escola Municipal” no nome, poderia ser abreviado como “EM” também. Em todos os casos em que for abreviado, use uma tag adicional (alt_name, ou official_name) para colocar o nome desabreviado.

  8. Você deve ter usado uma heurística pra extrair tags a partir do endereço, então talvez o ideal seja fazer umas melhorias manuais antes de submeter. Vamos tag por tag:

8.1. A tag “addr:place” tem alguns valores estranhos. Alguns começam com hífen, outros estão todos em maiúsculas. “UR” parece certo em maiúsculas, mas pesquisei e vi que “Cohab” geralmente vem assim, apenas com a inicial maiúscula. Algumas URs estão numeradas com zeros à esquerda; pra não confundir o usuário, o ideal é remover esses zeros. Por exemplo, UR01 seria UR1 (já tem casos sem os zeros, é mais uma questão de padronização). Um valor específico certamente precisa de um pouco de pesquisa pra ser consertado: “de Novembro SN Imbiribeira” (deve ter sido um subproduto da regra que você bolou pra extrair essas tags a partir do campo “endereço” nos dados originais)

8.2. Coisas similares se aplicam à tag “addr:street”. Aqui, o mais notável são as avenidas e ruas onde o logradouro vem abreviado (“av.”, “r.”, “est”), bem como títulos honoríficos (“dr.”, “n sra”). Por padrão, desabreviamos no OSM. Há alguns nomes que estão em maiúsculas que precisam ser formatados. Há um valor suspeito “Rua” (nada além disso) e outro que não parece ser uma rua (“Vila Aritana”).

8.3. Em “addr:housenumber”, sugiro deixar sem essa tag quando o local não tem número (nos casos em é seria “SN”). Há 2 casos com zeros à esquerda do número, poderia tirar os zeros.

Feito isso, acho que o que sobrar só pode ser tratado verificando caso a caso, e daí é trabalho demais pro importador e pode ser deixado pros mapeadores fazerem aos poucos conforme se deparam com os problemas.

Acabou sendo uma lista grande de coisas, mas repare que eu só pude sugeri-las porque estou vendo todos os dados de uma vez só e reconhecendo padrões neles. Muitas das coisas aqui não são culpa do processo de conversão e sim resultantes da qualidade da fonte de dados (despreocupação com padronização de certos detalhes). Isso é o que muda de fonte pra fonte.

Por fim, a geometria desse conjunto já é bastante minimalista, mas eu sempre recomendo passar o simplificador do JOSM (Shift+Y) antes do upload pra economizar espaço na base de dados. Encontrei uns casos nesse conjunto em que o simplificador realmente torna a geometria ainda mais simples (ex.: escola “Santo Amaro”), tirando detalhes que não são essenciais. Felizmente, seu conjunto não tem polígonos com bordas grudadas (onde o simplificador não atua). Se você tivesse um conjunto de dados com bordas grudadas grandes (como fronteiras de bairros), o ideal seria desgrudá-las e daí simplificá-las, mas você não precisa fazer isso aqui.

Fernando,

Obrigado pelo “excelentes”, são seus olhos. :wink:

Vou tentar comentar os itens que vc indicou.

  1. Eu achava que só era necessário colocar uma tag source na hora do upload, mas pelo jeito isso não é suficiente, adicionei uma tag source nos Ways, com ‘PrefRecife - http://dados.recife.pe.gov.br - Jul 15, 2013’.

Procurei e não achei restrições ao uso de URL na tag source, se houver me avise.

  1. Entendido e atualizado.

  2. Deixei a tag PrefRecife:escola_tipo=* e adicionei o * ao inicio da tag name.

  3. a não ser os nomes conhecidos aqui em Recife como grafados em caixa alta, como IPSEP, capitalizei o resto.

  4. No caso das escolas “técnicas”, deixei como está pois acho que o nome está bem completo. Mantive em todos os casos a tag escola_tipo.

  5. veja item 5.

  6. usei o EM e adicionei a tag alt_name

  7. Espero que tenha encontrado todos, resolvido.

8.1 Não entendi o caso do SN, é para deixar ou não a tag ?

8.1 No caso de Recife as URs são grafadas assim mesmo com hifen e zero, UR-01, UR-07…

8.2 Algumas ruas, muitas delas internas a condominios, são chamadas Vilas, inclusive vc acha isso no mapa oficial, assim como “Córrego”.

Quanto ao CRTL+Y no JOSM, eu apliquei, mas ele detonou alguns poligonos, os achatando numa linha de lados sobrepostos, por isso desfiz e entendo ser melhor enviar como no original, já que o ganho seria realmente muito pouco

Espero ter achado e respondido tudo.

Vou fazer o upload e qualquer outra alteração pode ser feita manualmente.

Changeset http://goo.gl/Iwqvgy

Obrigado

Marcelo Pereira

Acho que ficou perfeito Marcelo, bom trabalho! Sendo chato, só mais 3 ajustes finais:

  • Como “SN” denota a ausência de um número, isso seria representado pela ausência da tag addr:housenumber. A ausência dessa tag não é um problema. Muitos sistemas esperam que ela seja inteiramente numérica (e que partes não numéricas fiquem em addr:housename); no caso “SN” não é nem número nem nome da casa, então nenhuma das duas tags se encaixa bem. Se você quiser muito que apareça na linha de endereço do Nominatim, acho que seria melhor optar por addr:housename então. Senão, e se você quiser tornar isso claro pros outros mapeadores, poderia adicionar uma tag “note=Sem número de endereço.” nesses objetos, mas também não vejo necessidade, deixo pra você decidir.

  • Acho que você não precisa incluir a URL na tag source. Primeiro porque a URL pode mudar (frequentemente muda), e depois porque ocupa bastante espaço na base (espaço esse que, no caso, serve apenas para informação). Eu costumo deixar nessa tag algo que as pessoas possam pesquisar no Google e achar a fonte de cara. Se “PR” fosse pouco claro, “PrefRecife” já estaria bom, assim como “Prefeitura do Recife”. Você poderia mudar isso agora usando um truque com o plugin Reverter do JOSM: você reverte o changeset, daí dá Ctrl+Z pra desfazer as ações de reversão, e acaba tendo os objetos do changeset devidamente identificados; por fim, rode um update pra pegar a versão mais atual de cada elemento (resolvendo eventuais conflitos), e daí pode editá-los normalmente.

  • Vi que você adicionou um fixme em todos os objetos. É uma prática excelente, mas seu conjunto estava tão bom que acho que nem precisaria disso. Mas se quiser deixar, também não acho ruim.

Bom trabalho! E feliz ano novo!

Fernando,

Alterei o changeset de acordo com suas observações.

Marcelo Pereira

Uma pergunta de principiante:

Entre agora no site do OSM e as escolas não aparecem no mapa, a não ser quando marco “Map Data”, isso significa que fiz alguma coisa errada, ou tem a ver com a tag fixme ?

Ou como diria um filósofo amigo meu “Ou não ?”

Marcelo Pereira

Hehe, nem tinha visto, mas faltou colocar a tag amenity=school/kindergarten. Por isso que não aparecem no mapa. Seu conjunto original tinha essas tags. Talvez tenha dado algum problema na sua nova conversão.

Aproveite que terá que mudar em massa e mude a tag Source (com S maiúsculo) para source (minúsculo), o OSM é case-sensitive. Eu acredito que você não precisa incluir a data da fonte, mas se você quiser registrar essa informação, use o campo source:date e coloque a data no formato ISO 8601, por exemplo: “source:date=2013-07-15”. Daí em source basta colocar “Prefeitura do Recife”. Assim fica 100% dentro das convenções do OSM.

Você já deve saber que leva um tempo pros uploads terem efeito na visualização do mapa no site. Um detalhe é que seu navegador faz cache das quadrículas (tiles) do mapa; pra contornar isso, uns minutos depois do seu upload, dê um Ctrl+F5 para forçar a recarga total do site do OSM (limpando as imagens em cache). Ainda assim, não é garantia total (o servidor só vai redesenhar se não estiver sobrecarregado), então pode ser necessário repetir isso algumas vezes, talvez até num horário diferente.

Pronto, acho que dessa vez foi.

Obrigado Fernando,

Marcelo Pereira

Disponha, não precisa me agradecer. Ficou perfeito, parabéns! :smiley: