[Talk-br] KML para o PicLayer à partir dos PDFs do IBGE
Thiago Marcos P. Santos
tmpsantos em gmail.com
Quarta Março 5 20:09:27 UTC 2014
2014-03-05 14:57 GMT+02:00 Marcelo Pereira <pereiraholder em gmail.com>:
> Olá Thiago,
>
> Instalei o pacote python-pypdf e tudo rodou bem.
>
> Só notei um problema com uma das imagens.
>
> Usando o mapa de Itaquitinga - Pernambuco - 2607802, vi que a
> 260780205000002 ficou invertida verticalmente ao ser exibida no JOSM.
>
> A princípio pensei se tratar de inversão nas coordenadas Norte e Sul dessa
> imagem, fiz até um teste editando o arquivo KML. porém verifiquei que o
> problema é outro. ( apesar que, no KML os valores estão realmente errados, a
> coordenada Norte está mais ao sul do que a Sul )
>
> Comparando com os pdfs 260780205000003 e 260780205000004, cheguei a
> conclusão que o erro está na coordenada Norte da 260780205000002.
>
> Parece ter havido um problema no OCR ou na conversão desta coordenada, que
> deveria estar entre as coordenadas Norte das duas outras imagens citadas,
> porém está muito mais ao sul, dando a impressão visual que a imagem está
> rebatida pela coordenada sul.
>
> Desculpe o texto confuso, não consegui explicar melhor do que isso.
>
Eu entendi perfeitamente o problema, o relato do problema foi excelente.
O que acontece é que as vezes o OCR detecta algum número errado. Os
erros mais comuns são trocar 3 com 8 e 1 com 7. Incrível que as vezes
os números me parecem perfeitos, mas o OCR não consegue "enxergar".
Enfim... é longe de ser uma ciência exata.
No caso da sua imagem, o OCR estava lendo -7°39'79" ai invés de -7°39'29".
O que eu faço no script é tentar validar a sanidade das coordenadas
com uma série de testes. Se um deles falhar, eu renderizo o PDF
novamente com uma densidade de pixels maior e repito o processo.
Quanto maior a densidade de pixels, mais lento, por isso tento
primeiro com uma resolução menor (72ppi).
Baseado no seu report, fiz uma série de modificações no script. Uma
delas é que agora começo com uma resolução bem maior e vou abaixando
(sim, as vezes o OCR funciona melhor com a resolução mais baixa), o
que vai deixar mais lento, porém a precisão aumentou
consideravelmente. Em um mapa maior como o de Pará de Minas, a
diferença foi gritante.
Outra modificação foi um bug no teste de sanidade que permitia estes
valores invertidos que você percebeu. Testei na sua cidade e funcionou
(mas melhor você confirmar plz).
>
> Aproveito para deixar uma sugestão, se for possível, na hora da conversão de
> PDF para PNG, configurar a cor branca como transparente ( nem lembro se é
> possível para o PNG ), assim fica mais fácil sobrepor os layers de imagens
> no JOSM.
>
O resultado não fica muito bom, porque existem várias imagens
sobrepostas. Teste você mesmo rodando isto no diretório com os mapas
que você gerou (cuidado que se tiver outros .png no diretório, eles
vão ficar com o branco transparente também):
$ for image in *.png; do convert $image -background none -transparent
white -flatten $image; done
Estava pensando em como otimizar e não colocar no .kml mapas que estão
escondidos debaixo de mapas maiores. A solução me parece ser usar uma
scene graph.
> Outra coisa que notei foram os pequenos erros de referenciamento das
> imagens, mas atribuo isso a possíveis erros nos próprios PDFs ou de
> visualização do plugin do JOSM ( que aliás mostra uma mensagem sobre
> referenciamento de KML logo na entrada )
Tente rodar a nova versão (acabei de atualizar), o resultado vai ser bem melhor.
Infelizmente, uma coisa que não dá para arrumar é o fato das
coordenadas serem arredondas, então o alinhamento nunca vai ser
perfeito. Seria bom se tivéssemos decimais nos "segundos" da
coordenada.
Vi também que em Itaquitinga tem um PDF sem os traçados das ruas,
apenas os nomes. Espero que não seja recorrente.
>
> De novo parabéns pela iniciativa.
>
Mais detalhes sobre a lista de discussão Talk-br