Abreviações nos nomes de vias no OSM

Nighto,

O formato .OSC ( http://goo.gl/f8ojy8 ) já foi feito para identificar mudanças ao se comparar dois .OSM, como um diff.

Aqui muitas vezes é dificil até ver as placas com nomes de ruas, dirá as travessas, a não ser procurando pelo G Streets, só confiando na prefeitura mesmo, ou fazendo survey.

Mas de todo jeito, existe alguma “regra” sobre esses números ? Alguma padronização ? Veja que mostrei 4 casos diferentes, talvez adotar um só.

Estou há dias querendo te ajudar com essa questão. Lendo por altos, só queria informar uma coisa: nenhum sistema faz upload de arquivos .osc. Você teria que gerar um arquivo .osm com o atributo action=modify nos elementos a serem alterados. É justamente isso que impede você de usar uma ferramenta como sed (senão já teria te recomendado isso desde o começo). :-/

OSC = OSM Change File (serve apenas para baixar a descrição de um changeset, contém apenas os elementos alterados e não o conjunto todo)
OSM = OSM File (serve para guardar dados e marcar alterações nos dados)

Fernando,

Fui atrás de reler o que tinha pesquisado sobre o OSC, e realmente encontrei apenas referência ao que vc citou, para realizar uploads com esse arquivo encontrei informações nebulosas.

Mas de todo modo, e contrariando o senso comum, resolvi continuar nos testes, até para ver se conseguia indentificar uma maneira de salvar o trabalho que tinha feito até agora.

Pois bem, de posse do .OSC gerado pela diferença dos dois .OSMs, antes e depois da passagem pelo sed, abri o danado com o JOSM.

Primeiro como o arquivo não tem os nodes, somente os ways, nada é renderizado pelo JOSM, só aparece um retângulo gigantesco, como se tivéssemos aberto o planeta todo e mais alguma coisa, porém este retângulo está vazio.

Porém o JOSM identifica os elementos, os ways que sobraram, e pasme, vc consegue fazer o upload desse arquivo, o porquê realmente não sei.

Como prova de conceito, eu fiz o upload das modificações de apenas 2 ways, ruas que eu conheço e sei como estavam escritas com abreviações.

Funcionou.

O changeset é o http://www.openstreetmap.org/changeset/19908374 , caso estejam interessados em verificar.

Compartilhei o arquivo .osc pelo dropbox ( https://www.dropbox.com/s/wd10qeix3djxu2k/mudou.osc )

Gostaria que vcs analisassem o caso, e me dissessem se isso pode ser usado.

Até parece que descobri um bug no JOSM !

Att,

Marcelo Pereira

Diário de Bordo,

Mais um comportamento adverso do .OSC no JOSM, a validação não funciona. Até roda, mas não indica nada, deve ser por conta da falta de nodes.

Rodei o script no mapa de Pernambuco e encontrei 1.472 vias que satisfaziam às condições do sed.

Aproveitei e rodei um spell check para identificar os erros mais grosseiros, basicamente tipográficos.

E aí ? Faço o upload ou não ?

Att,

Marcelo Pereira

Bom,

pelo changeset de teste, me parece razoável.

Talvez você possa fazer um processo, digamos, semi-automático, gerando um .osc a cada 20 vias ou algo assim, subir um a um e verificar por erros a cada upload.

Quanto à numeração das travessas, realmente não sei dizer. Aqui no RJ nunca vi disso, é sempre “Travessa Fulano de Tal” ou “Travessa X”. Nunca vi o número antes, seja cardinal ou ordinal.

[]s

Nighto,

Quanto à questão de validar os dados, consegui outro workaround, foi só fazer o update do arquivo OSC pelo JOSM , e após isso foi possível rodar a validação.

Mas não mexi nisso, mesmo tendo recebido msgs de erro, pois não tinham a ver com o que eu tinha alterado, e sim erros dos ways originais. E além disso quis manter o universo do changeset o mais próximo possível da ideia original, que foi a de subsituir algumas abreviações.

Acabei de fazer o upload e foi gerado o changeset 19922341 ( com o usuário trevorinserts )

Só para constar, neste changeset eu substituí as abreviações de Rua, Avenida, Travessa e Estrada ( as que identifiquei ) pelas suas versões por extenso. ( foram 1472 ways alterados )

Além disso, eu rodei o spell check no arquivo OSC para corrigir alguns erros mais “salientes”.

A partir de agora , devo reutilizar o procedimento para fazer o mesmo com outras abreviações mais comuns.

Lembro que usei o boundary de Pernambuco, mas se ninguem se opor, posso rodá-lo nos outros estados.

Vou tentar manter aqui um histórico do que for sendo feito.

Att,

Marcelo Pereira

Excelente, Marcelo. Poderia rodar o mesmo aqui no Rio? Uma das coisas que eu sempre faço nos changesets que monitoro (RMRJ) é verificar a presença de nomes abreviados, mas é bastante possível (diria até provável) que eu tenha deixado algo passar. Além do que, é muito melhor fazer automaticamente que manualmente. :slight_smile:

[]s
Arlindo

Oi Arlindo,

Fiz algumas alterações no script ( principalmente adicionando regras de substituição ) e rodei no mapa do Rio.

Neste link ( https://www.dropbox.com/s/0zxudn4uimmumt9/riodejaneiro.zip ) vc encontra 2 arquivos, o .OSC e um .TXT que traz a saída de um diff, mostrando o que foi alterado.

Além das substituições, rodei um spell check no arquivo OSC, por isso ele pode estar ligeiramente diferente do que aponta o diff.

Segue código do script que rodei, atualizado :


#!/bin/bash

# extraindo do mapa brazil o estado 
echo extraindo RJ do mapa brazil

bzcat ./mapa_brasil/brazil-latest.osm.bz2 | ./osmconvert - -B=./boundaries/rio_de_janeiro.poly -o=./riodejaneiro/riodejaneiro.osm

echo atualizando o mapa
# 1 passo, atualizar o riodejaneiro.osm
./osmupdate ./riodejaneiro/riodejaneiro.osm ./riodejaneiro/new_pe.osm --day -B=./boundaries/rio_de_janeiro.poly

echo extraindo do mapa estadual somente os ways para processamento

# 2 extrair ways para alteração

osmosis --read-xml ./riodejaneiro/riodejaneiro.osm  --tf accept-ways highway=*  --tf accept-ways name=*  --tf reject-relations  --used-node idTrackerType=Dynamic  --write-xml ./riodejaneiro/entrada.osm 
	
echo Inicio processamento 

# 3 processar arquivo

sed -e '

# espaços no inicio e no fim das tags

	s/=" */="/Ig
	s/\(.\) *"/\1"/Ig

# espaços duplos, espaços triplos...

	 s/\(".*\)\s\{2,\}\(.*\)/\1 \2/Ig

# incluindo "-" nos nomes de estradas com espaço entre as letras e os números

	 s/\(\b[a-z]\{2\}\) \([0-9]\{3\}\)/\1-\2/Ig

# qualificadoras das vias
	
	 s/\bav\b[.,:]\? \?\|\bAvda\b[.,:]\? \?\|[^.]\bA\. \?V \?\. /Avenida /Ig
	 s/"al\b[.,:]\?[^-] \?\|"alam\b[.,:]\? \?/"Alameda /Ig
	 s/\bbc\b[.,:]\? \?/Beco /Ig
	 s/\bestr\b[.,:]\? \?\|\bEstdr\b[.,:]\? \?/Estrada /Ig
	 s/\bjd\b[.,:]\? \?/Jardim /Ig
	 s/\blad\b[.,:]\? \?\|\bld\b[.,:]\? /Ladeira /Ig
	 s/\bLrg\b[.,:]\? \?/Largo /Ig
	 s/\bLot\b[.,:]\?[^"] \?/Lotaemento /Ig
	 s/\bPte\b[.,:]\? \?/Ponte /Ig
	 s/\bp[cç][a]\?\b[.,:]\? \?/Praça /Ig
	 s/\bpq\b[.,:]\? \?/Parque /Ig
	 s/"r[ua]\?\b[.,:]\? \?/"Rua /Ig
	 s/\brod\b[.,:]\? \?/Rodovia /Ig
	 s/"tr[va]\?\b[.,:]\? \?\|"tv[a]\?\b[.,:]\? \?/"Travessa /Ig
	 s/"vd\b[.,:]\? \?\|"viad\b[.,:]\? \?/"Viaduto /Ig

# abreviações gerais

	 s/\bAgro\b[.,:]\? \?/Agrônomo /Ig
	 s/\bAlm\b[.,:]\? \?/Almirante /Ig
	 s/\bApst\b[.,:]\? \?/Apóstolo /Ig
	 s/\bBrg\b[.,:]\? \?\|\bBrig\b[.,:]\? \?/Brigadeiro /Ig
	 s/\bBr\.[^-] \?/Barão /Ig
	 s/\bCap\b[.,:]\?[^"] \?/Capitão /Ig
	 s/\bCb\b[.,:]\? \?/Cabo /Ig
	 s/\bComend\b[.,:]\? \?\|\bCdor\b[.,:]\? \?/Comendador /Ig
	 s/\bCel\b[.,:]\? \?/Coronel /Ig
	 s/\bCia\b[.,:]\? \?/Companhia /Ig
	 s/\bCient\b[.,:]\? \?/Cientista /Ig
	 s/\bCj\b[.,:]\? \?\|\bConj\b[.,:]\? \?/Conjunto /Ig
	 s/\bCmte\b[.,:]\? \?/Comandante /Ig
	 s/\bCons\b[.,:]\? \?\|\bCnso\b[.,:]\? \?/Conselheiro /Ig
	 s/\bDel\. \?/Delegado /Ig
	 s/\bDept\b[.,:]\? \?\|\bDep\b[.,:]\? \?/Deputado /Ig
	 s/\bDes\b[.,:]\? \?\|\bDesemb\b[.,:]\? \?/Desembargador /Ig
	 s/\bDa\. \?/Dona /Ig
	 s/\bDq\b[.,:]\? \?/Duque /Ig
	 s/\bDra\b[.,:]\?[^-] \?/Doutora /Ig
	 s/\bDr\b[.,:]\?[^-] \?/Doutor /Ig
	 s/\bEnfa\b[.,:]\? \?\|\bEnf\b[.,:]\? \?/Enfermeira /Ig
	 s/\bEnfo\b[.,:]\? \?/Enfermeiro /Ig
	 s/\bEng\b[.,:]\? \?/Engenheiro /Ig
	 s/\bEstud\b[.,:]\? \?/Estudante /Ig
	 s/\bExp\b[.,:]\? \?\|\bExped\b[.,:]\? \?/Expedicionário /Ig
	 s/\bFarm\b[.,:]\? \?/Farmacêutico /Ig
	 s/\bFaz\b[.,:]\? \?/Fazenda /Ig
	 s/\bFr\b[.,:] \?/Frei /Ig
	 s/\bGal\b[.,:]\? \?\|\bGen\b[.,:]\? \?/General /Ig
	 s/\([^.]\)\bGov\b[.,:]\? \?/\1Governador /Ig
	 s/\bIma\b[.,:]\? \?/Irmã /Ig
	 s/\bImo\b[.,:]\? \?/Irmão /Ig
	 s/\bInsp\b[.,:]\? \?/Inspetor /Ig
	 s/\bJorn\b[.,:]\? \?/Jornalista /Ig
	 s/\bJr\b[.,:]\? \?/Júnior /Ig
	 s/\bMte\b[.,:]\? \?/Monte /Ig
	 s/\bMto\b[.,:]\? \?/Maestro /Ig
	 s/\bMaj\b[.,:]\? \?\|\bMj\b[.,:]\?[^-"] \?/Major /Ig
	 s/\bMal\b[.,:]\? \?/Marechal /Ig
	 s/\bMin\b[.,:]\? \?/Ministro /Ig
	 s/\bMq\b[.,:]\? \?/Marquês /Ig
	 s/\bMqa\b[.,:]\? \?/Marquesa /Ig
	 s/\bMns\b[.,:]\? \?\|\bMons\b[.,:]\? \?/Monsenhor /Ig
	 s/\bMun\b[.,:]\? \?\|\bMunic\b[.,:]\? \?/Municipal /Ig
	 s/\bnsa\b[.,:]\? \?\|\bNssa\b[.,:]\? \?/Nossa /Ig
	 s/\bNs\b[.,:][^-"] \?\|\bN S\b[.,:]\? \?\|\bN Sra\b[.,:]\? \?/Nossa Senhora /Ig
	 s/\bPe\b[.,:]\?[^-"] \?/Padre /Ig
	 s/\bPion\b[.,:]\? \?/Pioneiro /Ig
	 s/\bPiona\b[.,:]\? \?/Pioneira /Ig
	 s/\bPnt\b[.,:]\? \?/Pintor /Ig
	 s/\bPoe\b[.,:]\? \?/Poeta /Ig
	 s/\bPref\b[.,:]\? \?/Prefeito /Ig
	 s/\bPcza\b[.,:]\? \?/Princesa /Ig
	 s/\bPresb\b[.,:]\? \?/Presbítero /Ig
	 s/\bPres\b[.,:]\? \?\|\bPresid\b[.,:]\? \?/Presidente /Ig
	 s/\bProfa\b[.,:]\? \?\|\bProfª\b[.,:]\? \?\|\bPrfa\b[.,:]\? \?/Professora /Ig
	 s/\bProf\b[.,:]\? \?\|\bPrf\b[.,:]\? \?/Professor /Ig
	 s/\bProm\b[.,:]\? \?/Promotor /Ig
	 s/\bPr\b[.,:]\?[^-"] \?\|\bPst\b[.,:]\? \?/Pastor /Ig
	 s/\bQuim\b[.,:]\? \?/Químico /Ig
	 s/\bRad\b[.,:]\? \?/Radialista /Ig
	 s/\bReg\b[.,:]\? \?/Regente /Ig
	 s/\bRep\b[.,:]\? \?/República /Ig
	 s/\bRev\b[.,:]\? \?/Reverendo /Ig
	 s/\bSen\b[.,:]\?[^-"] \?/Senador /Ig
	 s/\bSold\b[.,:]\? \?\|\bSd\b[.,:] \?/Soldado /Ig
	 s/\bSgto\b[.,:]\? \?\|\bSrg\b[.,:]\? \?/Sargento /Ig
	 s/\bSra\b[.,:]\? \?/Senhora /Ig
	 s/\bSr\b[.,:]\?[^-"] \?/Senhor /Ig
	 s/\bSta\b[.,:]\? \?/Santa /Ig
	 s/\bSto\b[.,:]\? \?/Santo /Ig
	 s/\bStos\b[.,:]\? \?/Santos /Ig
	 s/\bTen\b[.,:]\? \?\|\bTte\b[.,:]\? \?/Tenente /Ig
	 s/\bVer\b[.,:]\? \?/Vereador /Ig
	 s/\bVisc\b[.,:]\? \?/Visconde /Ig

	'  < ./riodejaneiro/entrada.osm > ./riodejaneiro/validado.osm

echo Passo criando o OSC 

# 4 criar um changeset com o que foi alterado para upload

osmosis  --read-xml file="./riodejaneiro/validado.osm"  --read-xml file="./riodejaneiro/entrada.osm"  --derive-change  --write-xml-change file="./riodejaneiro/mudou.osc"

diff -y --suppress-common-lines ./riodejaneiro/entrada.osm ./riodejaneiro/validado.osm > ./riodejaneiro/mudou.txt
	


Att Marcelo

Valeu Marcelo.

Não rodei o código ainda, nem analisei o arquivo que vc forneceu, mas batendo o olho no código vi que tem um typo aqui:

s/\bLot\b[.,:]\?[^"] \?/Lotaemento /Ig

Outra coisa, essa regra está procurando pela string “da” no meio da string ou só no começo? (Imagino que seja no meio, do contrário ele não acharia “Rua Da. Fulana” por exemplo). Mas do jeito que está, se eu entendi direito (meu regex está bem enferrujado!) ele pode gerar muitos falsos positivos, tipo (nome fictício, não consegui pensar em nenhum exemplo) “rua da alegria” virando “rua dona alegria”…

s/\bDa\. \?/Dona /Ig

O restante do script me parece correto. Vou analisar com calma os arquivos e respondo depois. Valeu!! :slight_smile:

[]s

Arlindo,

Realmente tinha um erro no Lotaemento. consertei aqui no meu script atualizado. Obrigado.

Como sempre rodo o spell check no texto final antes de fazer upload, eu acabo corrigindo esse erro em tempo.

Quanto ao

o backslash seguido do ponto “.” faz com que ele só pegue o “Da” seguido de ponto, assim ele não gera o falso positivo indicado, a não ser que estivesse escrito “Rua Da. Fulana”, ao invés de “Rua Da Fulana”.

E o “\b” é para indicar word boundaries, ou seja em qq lugar do texto.

Tenho rodado o script em outros estados e em todos eles acaba aparecendo um outro falso positivo, que redunda em aperfeiçoamento do script.

Abaixo segue versão mais atual que estou usando, neste acrescentei parametros , para não ter que reescrever sempre que mudar o nome do estado.


#!/bin/bash

# recebe 2 parametros

# 1 - nome do estado
# 2 - flag indicando se precisa extrair o mapa do brazil-latest e atualizar (1) ou só rodar o sed (2)

if [ ! -d "$1" ]; then
mkdir $1
fi

if  [ $2 -eq 1 ] ; then 

# extraindo do mapa brazil o estado 
echo extraindo $1 do mapa brazil

 bzcat ./mapa_brasil/brazil-latest.osm.bz2 | ./osmconvert - -B=./boundaries/$1.poly -o=./$1/$1.osm

echo atualizando o mapa de $1
# 1 passo, atualizar o paraiba.osm
 ./osmupdate ./$1/$1.osm ./$1/new_$1.osm --day -B=./boundaries/$1.poly

 rm ./$1/old_$1.osm
 mv ./$1/$1.osm ./$1/old_$1.osm
 mv ./$1/new_$1.osm ./$1/$1.osm

echo extraindo do mapa estadual somente os ways para processamento

# 2 extrair ways para alteração

 osmosis --read-xml ./$1/$1.osm  --tf accept-ways highway=*  --tf accept-ways name=*  --tf reject-relations  --used-node idTrackerType=Dynamic  --write-xml ./$1/entrada.osm 

fi
	
echo Inicio processamento 

# 3 processar arquivo

 sed -e '


# incluindo "-" nos nomes de estradas com espaço entre as letras e os números

	 s/\(\b[a-z]\{2\}\) \([0-9]\{3\}\)/\1-\2/Ig

# qualificadoras das vias
	
	 s/\bav\b[.,:]\? \?\|\bAvda\b[.,:]\? \?\|[^.]\bA\. \?V \?\. /Avenida /Ig
	 s/"al\b[.,:]\?[^-] \?\|"alam\b[.,:]\? \?/"Alameda /Ig
	 s/\bbc\b[.,:]\?[^"] \?/Beco /Ig
	 s/\bestr\b[.,:]\? \?\|\bEstdr\b[.,:]\? \?/Estrada /Ig
	 s/\bjd\b[.,:]\? \?/Jardim /Ig
	 s/\blad\b[.,:]\? \?\|\bld\b[.,:]\? /Ladeira /Ig
	 s/\bLrg\b[.,:]\? \?/Largo /Ig
	 s/\bLot\b[.,:]\?[^"] \?/Loteamento /Ig
	 s/\bPte\b[.,:]\? \?/Ponte /Ig
	 s/\bp[cç][a]\?\b[.,:]\? \?/Praça /Ig
	 s/\bpq\b[.,:]\? \?/Parque /Ig
	 s/"r[ua]\?\b[.,:]\? \?/"Rua /Ig
	 s/\brod\b[.,:]\? \?/Rodovia /Ig
	 s/"tr[va]\?\b[.,:]\? \?\|"tv[a]\?\b[.,:]\? \?/"Travessa /Ig
	 s/"vd\b[.,:]\? \?\|"viad\b[.,:]\? \?/"Viaduto /Ig

# abreviações gerais

	 s/\bAgro\b[.,:]\? \?/Agrônomo /Ig
	 s/\bAlm\b[.,:]\? \?/Almirante /Ig
	 s/\bApst\b[.,:]\? \?/Apóstolo /Ig
	 s/\bBrg\b[.,:]\? \?\|\bBrig\b[.,:]\? \?/Brigadeiro /Ig
	 s/\bBr\.[^-] \?/Barão /Ig
	 s/\bCap\b[.,:]\?[^"] \?/Capitão /Ig
	 s/\bCb\b[.,:]\? \?/Cabo /Ig
	 s/\bComend\b[.,:]\? \?\|\bCdor\b[.,:]\? \?/Comendador /Ig
	 s/\bCel\b[.,:]\? \?/Coronel /Ig
	 s/\bCia\b[.,:]\? \?/Companhia /Ig
	 s/\bCient\b[.,:]\? \?/Cientista /Ig
	 s/\bCj\b[.,:]\? \?\|\bConj\b[.,:]\? \?/Conjunto /Ig
	 s/\bCmte\b[.,:]\? \?/Comandante /Ig
	 s/\bCons\b[.,:]\? \?\|\bCnso\b[.,:]\? \?/Conselheiro /Ig
	 s/\bDel\. \?/Delegado /Ig
	 s/\bDept\b[.,:]\? \?\|\bDep\b[.,:]\? \?/Deputado /Ig
	 s/\bDes\b[.,:]\? \?\|\bDesemb\b[.,:]\? \?/Desembargador /Ig
	 s/\bDa\. \?/Dona /Ig
	 s/\bDq\b[.,:]\? \?/Duque /Ig
	 s/\bDra\b[.,:]\?[^-] \?/Doutora /Ig
	 s/\bDr\b[.,:]\?[^-] \?/Doutor /Ig
	 s/\bEnfa\b[.,:]\? \?\|\bEnf\b[.,:]\? \?/Enfermeira /Ig
	 s/\bEnfo\b[.,:]\? \?/Enfermeiro /Ig
	 s/\bEng\b[.,:]\? \?/Engenheiro /Ig
	 s/\bEstud\b[.,:]\? \?/Estudante /Ig
	 s/\bExp\b[.,:]\? \?\|\bExped\b[.,:]\? \?/Expedicionário /Ig
	 s/\bFarm\b[.,:]\? \?/Farmacêutico /Ig
	 s/\bFaz\b[.,:]\? \?/Fazenda /Ig
	 s/\bFr\b[.,:] \?/Frei /Ig
	 s/\bGal\b[.,:]\? \?\|\bGen\b[.,:]\? \?/General /Ig
	 s/\([^.]\)\bGov\b[.,:]\? \?/\1Governador /Ig
	 s/\bIma\b[.,:]\? \?/Irmã /Ig
	 s/\bImo\b[.,:]\? \?/Irmão /Ig
	 s/\bInsp\b[.,:]\? \?/Inspetor /Ig
	 s/\bJorn\b[.,:]\? \?/Jornalista /Ig
	 s/\bJr\b[.,:]\? \?/Júnior /Ig
	 s/\bMte\b[.,:]\? \?/Monte /Ig
	 s/\bMª\b[.,:]\? \?/Maria /Ig
	 s/\bMto\b[.,:]\? \?/Maestro /Ig
	 s/\bMaj\b[.,:]\? \?\|\bMj\b[.,:]\?[^-"] \?/Major /Ig
	 s/\bMal\b[.,:]\? \?/Marechal /Ig
	 s/\bMin\b[.,:]\? \?/Ministro /Ig
	 s/\bMq\b[.,:]\? \?/Marquês /Ig
	 s/\bMqa\b[.,:]\? \?/Marquesa /Ig
	 s/\bMns\b[.,:]\? \?\|\bMons\b[.,:]\? \?/Monsenhor /Ig
	 s/\bMun\b[.,:]\? \?\|\bMunic\b[.,:]\? \?/Municipal /Ig
	 s/\bnsa\b[.,:]\? \?\|\bNssa\b[.,:]\? \?/Nossa /Ig
	 s/\bNs\b[.,:][^-"] \?\|\bN S\b[.,:]\? \?\|\bN Sra\b[.,:]\? \?/Nossa Senhora /Ig
	 s/\bPe\b[.,:]\? \?/Padre /Ig
	 s/\bPion\b[.,:]\? \?/Pioneiro /Ig
	 s/\bPiona\b[.,:]\? \?/Pioneira /Ig
	 s/\bPnt\b[.,:]\? \?/Pintor /Ig
	 s/\bPoe\b[.,:]\? \?/Poeta /Ig
	 s/\bPref\b[.,:]\? \?/Prefeito /Ig
	 s/\bPcza\b[.,:]\? \?/Princesa /Ig
	 s/\bPresb\b[.,:]\? \?/Presbítero /Ig
	 s/\bPres\b[.,:]\? \?\|\bPresid\b[.,:]\? \?/Presidente /Ig
	 s/\bProfa\b[.,:]\? \?\|\bProfª\b[.,:]\? \?\|\bPrfa\b[.,:]\? \?/Professora /Ig
	 s/\bProf\b[.,:]\? \?\|\bPrf\b[.,:]\? \?/Professor /Ig
	 s/\bProm\b[.,:]\? \?/Promotor /Ig
	 s/\bPr\b[.,:]\?[^-"] \?\|\bPst\b[.,:]\? \?/Pastor /Ig
	 s/\bQuim\b[.,:]\? \?/Químico /Ig
	 s/\bRad\b[.,:]\? \?/Radialista /Ig
	 s/\bReg\b[.,:]\? \?/Regente /Ig
	 s/\bRep\b[.,:]\? \?/República /Ig
	 s/\bRev\b[.,:]\? \?/Reverendo /Ig
	 s/\bSen\b[.,:]\?[^-"] \?/Senador /Ig
	 s/\bSold\b[.,:]\? \?\|\bSd\b[.,:] \?/Soldado /Ig
	 s/\bSgto\b[.,:]\? \?\|\bSrg\b[.,:]\? \?/Sargento /Ig
	 s/\bSra\b[.,:]\? \?/Senhora /Ig
	 s/\bSr\b[.,:]\?[^-"] \?/Senhor /Ig
	 s/\bSta\b[.,:]\? \?/Santa /Ig
	 s/\bSto\b[.,:]\? \?/Santo /Ig
	 s/\bStos\b[.,:]\? \?/Santos /Ig
	 s/\bTen\b[.,:]\? \?\|\bTte\b[.,:]\? \?/Tenente /Ig
	 s/\bVer\b[.,:]\? \?/Vereador /Ig
	 s/\bVisc\b[.,:]\? \?/Visconde /Ig

# espaços no inicio e no fim das tags

	s/=" */="/Ig
	s/\(.\) *"/\1"/Ig

# espaços duplos, espaços triplos...

	 s/\b \+\b/ /g

	'  < ./$1/entrada.osm > ./$1/validado.osm

echo Passo criando o OSC 

# 4 criar um changeset com o que foi alterado para upload

 osmosis  --read-xml file="./$1/validado.osm"  --read-xml file="./$1/entrada.osm"  --derive-change  --write-xml-change file="./$1/mudou.osc"

 diff -y --suppress-common-lines ./$1/entrada.osm ./$1/validado.osm > ./$1/mudou.txt
	

Atualizando,

Além do mapa do RJ que foi enviado para o Nighto analizar, já fiz upload dos seguintes estados :

  • Amapá
  • Acre
  • Sergipe
  • Rondonia
  • Piaui
  • Roraima
  • tocantins
  • Alagoas
  • Maranhão
  • Rio Grande do Norte
  • Paraiba
  • Ceará
  • Amazonas
  • Bahia
  • Pará
    E é claro, Pernambuco

Vou dar continuidade com os outros.

Se alguem quiser que eu envie para análise antes, é só me avisar.

Depois posto os números dos changesets de cada upload feito.

Att

Marcelo Pereira

Marcelo,

dei uma lida rápida no arquivo .txt com as mudanças, parece que apenas dois casos não foram corrigidos pelo script:

    <tag k="name" v="R. Capto. Benedito Lacerda"/>	      |	    <tag k="name" v="Rua Capto. Benedito Lacerda"/>
    <tag k="name" v="R Ns Senhora de Lourdes"/>		      |	    <tag k="name" v="Rua Ns Senhora de Lourdes"/>
    <tag k="name" v="R. D. Pedro I"/>			      |	    <tag k="name" v="Rua D. Pedro I"/>

Esse caso aqui deu problema:

    <tag k="name" v="Rua Ten-Cel Amado"/>		      |	    <tag k="name" v="Rua Tenente -Coronel Amado"/>

Este é um caso de falso positivo:

    <tag k="name" v="Ferrovia Cia. Est. de Eng. de Transp. Lo |	    <tag k="name" v="Ferrovia Companhia Est. de Engenheiro de
    <tag k="name" v="Ferrovia Cia. Est. de Eng. de Transp. Lo |	    <tag k="name" v="Ferrovia Companhia Est. de Engenheiro de

E estas tem de ser corrigidas manualmente:

    <tag k="name" v="Acesso  Reserva Biológica  (ENTRADA PROI |	    <tag k="name" v="Acesso  Reserva Biológica (ENTRADA PROIB
    <tag k="name" v="R. VIsconde de Araxá"/>		      |	    <tag k="name" v="Rua VIsconde de Araxá"/>
    <tag k="name" v="R. NATANAEL RIBEIRO DE ALMEIDA"/>	      |	    <tag k="name" v="Rua NATANAEL RIBEIRO DE ALMEIDA"/>
    <tag k="name" v="AV. DO CONTORNO"/>			      |	    <tag k="name" v="Avenida DO CONTORNO"/>
    <tag k="name" v="Rua Ld. do Castro"/>		      |	    <tag k="name" v="Rua Ladeira do Castro"/>
    <tag k="ref" v="BR 116;BR-116"/>			      |	    <tag k="ref" v="BR-116;BR-116"/>
    <tag k="ref" v="BR 116;BR-116"/>			      |	    <tag k="ref" v="BR-116;BR-116"/>
    <tag k="ref" v="BR 116;BR-116"/>			      |	    <tag k="ref" v="BR-116;BR-116"/>
    <tag k="ref" v="BR 116;BR-116"/>			      |	    <tag k="ref" v="BR-116;BR-116"/>
    <tag k="ref" v="BR 116;BR-116"/>			      |	    <tag k="ref" v="BR-116;BR-116"/>
    <tag k="name" v="Rua dos Ac. R. Ns. Aparecida"/>	      |	    <tag k="name" v="Rua dos Ac. R. Nossa Senhora Aparecida"/

[]s

Quer que eu olhe os .txt dos outros estados também? Outro par de olhos pode ajudar a localizar problemas.

[]s
Arlindo

Oi Arlindo,

Obrigado pela minuciosa revisão.

A cada vez que rodo o script, sempre altero algum detalhe, e isso explica parte dos erros que vc encontrou. E sempre revejo manualmente o resultado, por isso, mesmo que apareca “Ferrovia Companhia Est. de Engenheiro de…” no arquivo .txt, no .osc eu, ou apaguei a linha, ou consertei o nome.

Além disso, quando eu identificava falsos positivos, eu, ou consertava o script, ou mesmo tirava a linha, se via que geraria mais trabalho manual do que automático, a exemplo do “cia”, que tirei do script.

Um exemplo é o “R.” para rua, só identifico no início do texto, pois existem inúmeras vias redigidas com abreviações de nomes próprios e sempre vai aparecer um erro do tipo “Rua Benedito Rua Barbosa”, no lugar de “Rua Benedito R. Barbosa”, é por isso que não trato o “D.” de D. Pedro I .

Além disso existem abreviações que não consigo identificar, como a que vc mostrou “capto”, que eu imagino ser Capitão, mas não tenho certeza. Um exemplo pior é o caso de “pass.”, significa o que ? Passagem, Passeio, Passarela ?

Uma coisa que aprendi usando o script é que existem casos de falsos positivos causados não pelo script e sim por uma erro de digitação de quem nomeou a via, ou uma coincidêcia, como o caso de “TV Asa Branca”, mudei para “Travessa Asa Branca”, mas parece que era a Transmissora de TV mesmo, e aí não tem o que fazer sem conhecer localmente o mapa, para sanar os problemas.

Vale lembrar que não me propus a corrigir TODAS as abreviações, acho que isso nem é possível, mas a lista pode e deve aumentar, só é preciso que eu saiba qual é a abreviação e o que ela significa.

Se vc tiver outros exemplos, por favor me avise, assim posso incluir no script e testar.

Existem outros padrões que podem ser revistos nos nomes das vias, como mudar de maiúsculas ou minúsculas para capitalizado, mas isso eu não domino, e é sujeito a muito falso positivo, por conta das abreviações tipo RFFSA, ou como tenho exemplo aqui em recife, IPSEP, que é um nome de bairro e tb de um hospital do estado.

Vou publicar no próximo post uma lista dos changesets e dos arquivos .osc e .txt gerados pelo script, assim como a versão mais atual dele, assim quem quiser pode adicioinar outras características.

Agradeço mais uma vez a análise.

Att,

Marcelo Pereira

Seguem os changesets do estados que já fiz upload

http://www.openstreetmap.org/changeset/19961996 - Pernambuco
http://www.openstreetmap.org/changeset/19999989 - Paraíba
http://www.openstreetmap.org/changeset/20002820 - Amazonas
http://www.openstreetmap.org/changeset/20003697 - Amapa
http://www.openstreetmap.org/changeset/20004056 - Roraima
http://www.openstreetmap.org/changeset/20019554 - Acre
http://www.openstreetmap.org/changeset/20021664 - Para
http://www.openstreetmap.org/changeset/20024890 - Rondonia
http://www.openstreetmap.org/changeset/20025031 - Maranhao
http://www.openstreetmap.org/changeset/20025168 - Piaui
http://www.openstreetmap.org/changeset/20025280 - Tocantins
http://www.openstreetmap.org/changeset/20025615 - Ceara
http://www.openstreetmap.org/changeset/20040170 - Rio Grande do Norte
http://www.openstreetmap.org/changeset/20040729 - Alagoas
http://www.openstreetmap.org/changeset/20040970 - Sergipe
http://www.openstreetmap.org/changeset/20043102 - Bahia
http://www.openstreetmap.org/changeset/20043402 - Pernambuco
http://www.openstreetmap.org/changeset/20057937 - Mato Grosso

Segue link com os arquivos .txt e .osc de cada estado enviado para o OSM:

https://www.dropbox.com/s/0ewzpqt2truqq8b/txts%20e%20osc%20dos%20estados.zip

Abaixo transcrevo o código mais atual do script, só o conteúdo do sed, que é o que importa


 sed -e '


# incluindo "-" nos nomes de estradas com espaço entre as letras e os números

	 s:\(\b[a-z]\{2\}\) \([0-9]\{3\}\)\b[^"/]:\1-\2:Ig

# qualificadoras das vias
	
	 s/\bav\b[.,:]\?[^"-] \?\|\bAvda\b[.,:]\? \?\|[^.]\bA\. \?V \?\. /Avenida /Ig
	 s/"al\b[.,:]\?[^"-] \?\|"alam\b[.,:]\? \?/"Alameda /Ig
	 s/\bbc\b[.,:]\?[^"] \?/Beco /Ig
	 s/\bestr\b[.,:]\? \?\|\bEstdr\b[.,:]\? \?/Estrada /Ig
	 s/\bjd\b[.,:]\? \?/Jardim /Ig
	 s/\blad\b[.,:]\? \?\|\bld\b[.,:]\? /Ladeira /Ig
	 s/\bLrg\b[.,:]\? \?/Largo /Ig
	 s/\bLot\b[.,:]\?[^"] \?/Loteamento /Ig
	 s/\bPte\b[.,:]\? \?/Ponte /Ig
	 s/\bp[cç][a]\?\b[.,:]\? \?/Praça /Ig
	 s/\bpq\b[.,:]\? \?/Parque /Ig
	 s/"r[ua]\?\b[.,:]\? \?/"Rua /Ig
	 s/\brod\b[.,:]\? \?/Rodovia /Ig
	 s/"tr[va]\?\b[.,:]\? \?\|"tv[a]\?\b[.,:]\? \?\|"trav[v]\?\b[.,:]\? \?/"Travessa /Ig
	 s/"vd\b[.,:]\? \?\|"viad\b[.,:]\? \?/"Viaduto /Ig

# abreviações gerais

	 s/\bAgro\b[.,:]\? \?/Agrônomo /Ig
	 s/\bAlm\b[.,:]\? \?/Almirante /Ig
	 s/\bApst\b[.,:]\? \?/Apóstolo /Ig
	 s/\bBrg\b[.,:]\? \?\|\bBrig\b[.,:]\? \?/Brigadeiro /Ig
	 s/\bBr\.[^-] \?/Barão /Ig
	 s/\bCap\b[.,:]\?[^"] \?/Capitão /Ig
	 s/\bCb\b[.,:]\? \?/Cabo /Ig
	 s/\bCon\b[.,:]\? \?/Cônego /Ig
	 s/\bComend\b[.,:]\? \?\|\bCdor\b[.,:]\? \?/Comendador /Ig
	 s/\bCel\b[.,:]\? \?/Coronel /Ig
	 s/\bCia\b[.,:]\? \?/Companhia /Ig
	 s/\bCient\b[.,:]\? \?/Cientista /Ig
	 s/\bCj\b[.,:]\? \?\|\bConj\b[.,:]\? \?/Conjunto /Ig
	 s/\bCmte\b[.,:]\? \?/Comandante /Ig
	 s/\bCons\b[.,:]\? \?\|\bCnso\b[.,:]\? \?/Conselheiro /Ig
	 s/\bDel\. \?/Delegado /Ig
	 s/\bDept\b[.,:]\? \?\|\bDep\b[.,:]\? \?/Deputado /Ig
	 s/\bDes\.[d]\?or\b[.,:]\? \?\|\bDes\b[.,:]\? \?\|\bDesemb\b[.,:]\? \?/Desembargador /Ig
	 s/\bDa[.ª] \?/Dona /Ig
	 s/\bDq\b[.,:]\? \?/Duque /Ig
	 s/\bDra\b[.,:]\?[^-] \?/Doutora /Ig
	 s/\bDr\b[.,:]\?[^-] \?/Doutor /Ig
	 s/\bEnfa\b[.,:]\? \?\|\bEnf\b[.,:]\? \?/Enfermeira /Ig
	 s/\bEnfo\b[.,:]\? \?/Enfermeiro /Ig
	 s/\bEng\b[.,:]\? \?/Engenheiro /Ig
	 s/\bEstud\b[.,:]\? \?/Estudante /Ig
	 s/\bExp\b[.,:]\? \?\|\bExped\b[.,:]\? \?/Expedicionário /Ig
	 s/\bFarm\b[.,:]\? \?/Farmacêutico /Ig
	 s/\bFaz\b[.,:]\? \?/Fazenda /Ig
 	 s/\bFco\b[.,:]\? \?/Francisco /Ig
	 s/\bFr\b[.,:] \?/Frei /Ig
	 s/\bGal\b[.,:]\? \?\|\bGen\b[.,:]\? \?/General /Ig
	 s/\([^.]\)\bGov\b[.,:]\? \?/\1Governador /Ig
	 s/\bIma\b[.,:]\? \?/Irmã /Ig
	 s/\bImo\b[.,:]\? \?/Irmão /Ig
	 s/\bInsp\b[.,:]\? \?/Inspetor /Ig
	 s/\bJorn\b[.,:]\? \?/Jornalista /Ig
	 /user=/! s/\bJr\b[.,:]\? \?/Júnior /Ig
	 s/\bMte\b[.,:]\? \?/Monte /Ig
	 s/\bMª\b[.,:]\? \?/Maria /Ig
	 s/\bMto\b[.,:]\? \?/Maestro /Ig
	 s/\bMaj\b[.,:]\? \?\|\bMj\b[.,:]\?[^-"] \?/Major /Ig
	 s/\bMal\b[.,:]\?[^-] \?/Marechal /Ig
	 s/\bMin\b[.,:]\? \?/Ministro /Ig
	 s/\bMq\b[.,:]\? \?/Marquês /Ig
	 s/\bMqa\b[.,:]\? \?/Marquesa /Ig
	 s/\bMns\b[.,:]\? \?\|\bMons\b[.,:]\? \?/Monsenhor /Ig
	 s/\bMun\b[.,:]\? \?\|\bMunic\b[.,:]\? \?/Municipal /Ig
	 s/\bnsa\b[.,:]\? \?\|\bNssa\b[.,:]\? \?/Nossa /Ig
	 s/\bNs\b[.,:][^-"] \?\|\bN S\b[.,:]\? \?\|\bN Sra\b[.,:]\? \?/Nossa Senhora /Ig
	 s/\bPe\b[.,:]\?[^"-] \?/Padre /Ig
	 s/\bPion\b[.,:]\? \?/Pioneiro /Ig
	 s/\bPiona\b[.,:]\? \?/Pioneira /Ig
	 s/\bPnt\b[.,:]\? \?/Pintor /Ig
	 s/\bPoe\b[.,:]\? \?/Poeta /Ig
	 s/\bPref\b[.,:]\? \?/Prefeito /Ig
	 s/\bPcza\b[.,:]\? \?/Princesa /Ig
	 s/\bPresb\b[.,:]\? \?/Presbítero /Ig
	 s/\bPres\b[.,:]\? \?\|\bPresid\b[.,:]\? \?/Presidente /Ig
	 s/\bProfa\b[.,:]\? \?\|\bProfª\b[.,:]\? \?\|\bPrfa\b[.,:]\? \?/Professora /Ig
	 s/\bProf\b[.,:º]\? \?\|\bPrf\b[.,:]\? \?/Professor /Ig
	 s/\bProm\b[.,:]\? \?/Promotor /Ig
	 s/\bPr\b[.,:]\?[^-"] \?\|\bPst\b[.,:]\? \?/Pastor /Ig
	 s/\bQuim\b[.,:]\? \?/Químico /Ig
	 s/\bRad\b[.,:]\? \?/Radialista /Ig
	 s/\bReg\b[.,:]\? \?/Regente /Ig
	 s/\bRep\b[.,:]\? \?/República /Ig
	 s/\bRev\b[.,:]\? \?/Reverendo /Ig
	 s/\bSen\b[.,:]\?[^-"] \?/Senador /Ig
	 s/\bSold\b[.,:]\? \?\|\bSd\b[.,:] \?/Soldado /Ig
	 s/\bSgto\b[.,:]\? \?\|\bSrg\b[.,:]\? \?/Sargento /Ig
	 s/\bSra\b[.,:]\? \?/Senhora /Ig
	 s/\bSr\b[.,:]\?[^-"] \?/Senhor /Ig
	 s/\bSta\b[.,:]\? \?/Santa /Ig
	 s/\bSto\b[.,:]\? \?/Santo /Ig
	 s/\bStos\b[.,:]\? \?/Santos /Ig
	 s/\bTen\b[.,:]\? \?\|\bTte\b[.,:]\? \?/Tenente /Ig
	 s/\bVer\b[.,:]\? \?/Vereador /Ig
	 s/\bVisc\b[.,:]\? \?/Visconde /Ig

# espaços no inicio e no fim das tags

	s/=" */="/Ig
	s/\(.\) *"/\1"/Ig

# espaços duplos, espaços triplos...

	 s/\b \+\b/ /g

	' 

Segue link com os arquivos .txt e .osc de cada estado enviado para o OSM:

https://www.dropbox.com/s/0ewzpqt2truqq8b/txts%20e%20osc%20dos%20estados.zip

Abaixo transcrevo o código mais atual do script, só o conteúdo do sed, que é o que importa


 sed -e '


# incluindo "-" nos nomes de estradas com espaço entre as letras e os números

	 s:\(\b[a-z]\{2\}\) \([0-9]\{3\}\)\b[^"/]:\1-\2:Ig

# qualificadoras das vias
	
	 s/\bav\b[.,:]\?[^"-] \?\|\bAvda\b[.,:]\? \?\|[^.]\bA\. \?V \?\. /Avenida /Ig
	 s/"al\b[.,:]\?[^"-] \?\|"alam\b[.,:]\? \?/"Alameda /Ig
	 s/\bbc\b[.,:]\?[^"] \?/Beco /Ig
	 s/\bestr\b[.,:]\? \?\|\bEstdr\b[.,:]\? \?/Estrada /Ig
	 s/\bjd\b[.,:]\? \?/Jardim /Ig
	 s/\blad\b[.,:]\? \?\|\bld\b[.,:]\? /Ladeira /Ig
	 s/\bLrg\b[.,:]\? \?/Largo /Ig
	 s/\bLot\b[.,:]\?[^"] \?/Loteamento /Ig
	 s/\bPte\b[.,:]\? \?/Ponte /Ig
	 s/\bp[cç][a]\?\b[.,:]\? \?/Praça /Ig
	 s/\bpq\b[.,:]\? \?/Parque /Ig
	 s/"r[ua]\?\b[.,:]\? \?/"Rua /Ig
	 s/\brod\b[.,:]\? \?/Rodovia /Ig
	 s/"tr[va]\?\b[.,:]\? \?\|"tv[a]\?\b[.,:]\? \?\|"trav[v]\?\b[.,:]\? \?/"Travessa /Ig
	 s/"vd\b[.,:]\? \?\|"viad\b[.,:]\? \?/"Viaduto /Ig

# abreviações gerais

	 s/\bAgro\b[.,:]\? \?/Agrônomo /Ig
	 s/\bAlm\b[.,:]\? \?/Almirante /Ig
	 s/\bApst\b[.,:]\? \?/Apóstolo /Ig
	 s/\bBrg\b[.,:]\? \?\|\bBrig\b[.,:]\? \?/Brigadeiro /Ig
	 s/\bBr\.[^-] \?/Barão /Ig
	 s/\bCap\b[.,:]\?[^"] \?/Capitão /Ig
	 s/\bCb\b[.,:]\? \?/Cabo /Ig
	 s/\bCon\b[.,:]\? \?/Cônego /Ig
	 s/\bComend\b[.,:]\? \?\|\bCdor\b[.,:]\? \?/Comendador /Ig
	 s/\bCel\b[.,:]\? \?/Coronel /Ig
	 s/\bCia\b[.,:]\? \?/Companhia /Ig
	 s/\bCient\b[.,:]\? \?/Cientista /Ig
	 s/\bCj\b[.,:]\? \?\|\bConj\b[.,:]\? \?/Conjunto /Ig
	 s/\bCmte\b[.,:]\? \?/Comandante /Ig
	 s/\bCons\b[.,:]\? \?\|\bCnso\b[.,:]\? \?/Conselheiro /Ig
	 s/\bDel\. \?/Delegado /Ig
	 s/\bDept\b[.,:]\? \?\|\bDep\b[.,:]\? \?/Deputado /Ig
	 s/\bDes\.[d]\?or\b[.,:]\? \?\|\bDes\b[.,:]\? \?\|\bDesemb\b[.,:]\? \?/Desembargador /Ig
	 s/\bDa[.ª] \?/Dona /Ig
	 s/\bDq\b[.,:]\? \?/Duque /Ig
	 s/\bDra\b[.,:]\?[^-] \?/Doutora /Ig
	 s/\bDr\b[.,:]\?[^-] \?/Doutor /Ig
	 s/\bEnfa\b[.,:]\? \?\|\bEnf\b[.,:]\? \?/Enfermeira /Ig
	 s/\bEnfo\b[.,:]\? \?/Enfermeiro /Ig
	 s/\bEng\b[.,:]\? \?/Engenheiro /Ig
	 s/\bEstud\b[.,:]\? \?/Estudante /Ig
	 s/\bExp\b[.,:]\? \?\|\bExped\b[.,:]\? \?/Expedicionário /Ig
	 s/\bFarm\b[.,:]\? \?/Farmacêutico /Ig
	 s/\bFaz\b[.,:]\? \?/Fazenda /Ig
 	 s/\bFco\b[.,:]\? \?/Francisco /Ig
	 s/\bFr\b[.,:] \?/Frei /Ig
	 s/\bGal\b[.,:]\? \?\|\bGen\b[.,:]\? \?/General /Ig
	 s/\([^.]\)\bGov\b[.,:]\? \?/\1Governador /Ig
	 s/\bIma\b[.,:]\? \?/Irmã /Ig
	 s/\bImo\b[.,:]\? \?/Irmão /Ig
	 s/\bInsp\b[.,:]\? \?/Inspetor /Ig
	 s/\bJorn\b[.,:]\? \?/Jornalista /Ig
	 /user=/! s/\bJr\b[.,:]\? \?/Júnior /Ig
	 s/\bMte\b[.,:]\? \?/Monte /Ig
	 s/\bMª\b[.,:]\? \?/Maria /Ig
	 s/\bMto\b[.,:]\? \?/Maestro /Ig
	 s/\bMaj\b[.,:]\? \?\|\bMj\b[.,:]\?[^-"] \?/Major /Ig
	 s/\bMal\b[.,:]\?[^-] \?/Marechal /Ig
	 s/\bMin\b[.,:]\? \?/Ministro /Ig
	 s/\bMq\b[.,:]\? \?/Marquês /Ig
	 s/\bMqa\b[.,:]\? \?/Marquesa /Ig
	 s/\bMns\b[.,:]\? \?\|\bMons\b[.,:]\? \?/Monsenhor /Ig
	 s/\bMun\b[.,:]\? \?\|\bMunic\b[.,:]\? \?/Municipal /Ig
	 s/\bnsa\b[.,:]\? \?\|\bNssa\b[.,:]\? \?/Nossa /Ig
	 s/\bNs\b[.,:][^-"] \?\|\bN S\b[.,:]\? \?\|\bN Sra\b[.,:]\? \?/Nossa Senhora /Ig
	 s/\bPe\b[.,:]\?[^"-] \?/Padre /Ig
	 s/\bPion\b[.,:]\? \?/Pioneiro /Ig
	 s/\bPiona\b[.,:]\? \?/Pioneira /Ig
	 s/\bPnt\b[.,:]\? \?/Pintor /Ig
	 s/\bPoe\b[.,:]\? \?/Poeta /Ig
	 s/\bPref\b[.,:]\? \?/Prefeito /Ig
	 s/\bPcza\b[.,:]\? \?/Princesa /Ig
	 s/\bPresb\b[.,:]\? \?/Presbítero /Ig
	 s/\bPres\b[.,:]\? \?\|\bPresid\b[.,:]\? \?/Presidente /Ig
	 s/\bProfa\b[.,:]\? \?\|\bProfª\b[.,:]\? \?\|\bPrfa\b[.,:]\? \?/Professora /Ig
	 s/\bProf\b[.,:º]\? \?\|\bPrf\b[.,:]\? \?/Professor /Ig
	 s/\bProm\b[.,:]\? \?/Promotor /Ig
	 s/\bPr\b[.,:]\?[^-"] \?\|\bPst\b[.,:]\? \?/Pastor /Ig
	 s/\bQuim\b[.,:]\? \?/Químico /Ig
	 s/\bRad\b[.,:]\? \?/Radialista /Ig
	 s/\bReg\b[.,:]\? \?/Regente /Ig
	 s/\bRep\b[.,:]\? \?/República /Ig
	 s/\bRev\b[.,:]\? \?/Reverendo /Ig
	 s/\bSen\b[.,:]\?[^-"] \?/Senador /Ig
	 s/\bSold\b[.,:]\? \?\|\bSd\b[.,:] \?/Soldado /Ig
	 s/\bSgto\b[.,:]\? \?\|\bSrg\b[.,:]\? \?/Sargento /Ig
	 s/\bSra\b[.,:]\? \?/Senhora /Ig
	 s/\bSr\b[.,:]\?[^-"] \?/Senhor /Ig
	 s/\bSta\b[.,:]\? \?/Santa /Ig
	 s/\bSto\b[.,:]\? \?/Santo /Ig
	 s/\bStos\b[.,:]\? \?/Santos /Ig
	 s/\bTen\b[.,:]\? \?\|\bTte\b[.,:]\? \?/Tenente /Ig
	 s/\bVer\b[.,:]\? \?/Vereador /Ig
	 s/\bVisc\b[.,:]\? \?/Visconde /Ig

# espaços no inicio e no fim das tags

	s/=" */="/Ig
	s/\(.\) *"/\1"/Ig

# espaços duplos, espaços triplos...

	 s/\b \+\b/ /g

	' 

Marcelo, gostaria de revisar o Rio Grande do Sul antes do seu upload. Eu acho que, ao fazer a substituição em todas as tags (e não somente em tags de nomes de ruas, que exigiria outra abordagem para filtrar e manipular os dados), você vai acabar substituindo mais coisas do que deveria. Provavelmente são poucos os erros introduzidos, mas podem ser importantes.

Fernando,

Acesse em https://www.dropbox.com/s/3eh35764ont24ck/rio_grande_do_sul.zip, 2 arquivos:

O txt é o diff dos .osm, nele são listadas as linhas e o que foi alterado.
O .osc são os elementos no formato que o JOSM entende.

No .osc eu rodei o spell check, eliminando principalmente typo errors.

Abra o .osc no JOSM, rode o Update Data, assim vc pode rodar a validação.

Daí é só fazer o upload.

Finalmente analisei o seu changeset. Só umas 3 delas caíram dentro de Porto Alegre (eu já tinha passado um pente fino uns meses atrás) e as 3 estão ok. Em relação ao restante que afeta o estado todo, eu não teria feito as seguintes substituições com receio de que poderiam estar corretas antes da “correção”:

Angelo → Ângelo
Jose → José
Alvaro → Álvaro
Junior → Júnior

Elas correspondem a mais de 80% (talvez mais de 90%, não contei) das alterações feitas por spell check nesse conjunto. O resto foi tudo desabreviação (e estão todas certas). Por isso, sugiro que você separe os changesets que só desabreviam dos changesets que fazem spell check.

O impacto delas: pro OSM, quase nenhum; pros sistemas dependentes (como GPSs): pode ter atrapalhado um pouco, caso o sistema não ignore acentos. De qualquer forma, talvez a grafia certa de algumas delas já tivesse sido confirmada pelos mapeadores locais.

Mais duas coisinhas:

  • seu diff está cortando as linhas na coluna 60, então eu estou “supondo” que aquilo que foi cortado não teve nenhum problema
  • você não precisa aplicar essas correções dentro das tags “note” e “fixme” (talvez nem deva em alguns casos, depende da mensagem)