<html>
<head>
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
Oi Éder, <br>
<br>
Eu havia ignorado essa opção "output=more"... Não cheguei a ver
quantos níveis de acurácia há agora. Você sabe: Na antiga eram oito:<br>
c("País", "U. F.", "Município", "Cidade", "CEP", <br>
"Rua", "Cruzamento", "Endereço")<br>
<br>
Quando você fala em considerar apenas os primeiros dígitos, é
possível ver que isso diminui a acurácia apenas notando que dos 9183
CEPs georeferenciados temos 6414 coordenadas únicas. Não sei o que
essas quase três mil repetições são...<br>
<br>
Tentando a sua sugestão (usar primeiros 5 digitos), obtemos apenas
dois endereços com os 30 primeiros CEPs, enquanto que com os 8
dígitos temos 16 coordenadas diferentes. Mas isso é porque esses
CEPs estão ordenados, e os CEPs iniciando 80010 estão no início e
vários deles apontam para a central de distribuição dos correios. Ou
seja, quanto aos dados públicos do DATASUS, ao nível de CEP, não dá
para fazer mais que isso... Os dados completos, com nome de
logradouro e número não são públicos, são mais informativos.<br>
<br>
Falando sobre o georeferenciamento de todos os endereços de
Curitiba, os meio milhão de endereços são referentes a cada
domicílio. Como muitos estão em condomínios, pode-se conseguir uma
drástica redução. Além disso, uma coisa que pode-se levar em conta é
que os números das ruas de Curitiba são e metros a partir do início
da rua e se é a direita ou esquerda da rua. O número 310 indica um
endereço 310 metros a partir do incício da rua à direita enquanto
que 311 indica à esquerda. Geralmente a ruas "nascem" do centro e
vão para os extremos. Um algoritmo pensando nessa estrutura pode
ajudar a diminuir também o número de consultas.<br>
<br>
Elias<br>
<br>
<div class="moz-cite-prefix">On 04/05/15 21:53, Éder Comunello
wrote:<br>
</div>
<blockquote
cite="mid:CABmC8gn=oqXdeVN2HmVEW_Z7LKMi8-W0+OCman=VDEaaEetTCA@mail.gmail.com"
type="cite">
<div>Elias, boa tarde!</div>
<div><br>
</div>
<div>Fiz uns testes com o georreferenciamento por cep, usando
ggmap::geocode(). Na verdade, dá pra fazer uma avaliação da
acurácia pelos campos <font face="monospace, monospace">type </font>e
<font face="monospace, monospace">loctype </font>retornados
quando se utiliza a opção "<font face="monospace, monospace">output=more</font>".
Pelo que pude entender, endereços "precisos/acurados" são
retornados com a indicação <font face="monospace, monospace">"street_address</font><span
style="font-family:monospace,monospace">"</span><font
face="arial, helvetica, sans-serif"> em </font><font
face="monospace, monospace">type </font><font face="arial,
helvetica, sans-serif">e as demais formas são aproximações. No
entanto, códigos "</font><span
style="font-family:monospace,monospace">postal_code" </span><font
face="arial, helvetica, sans-serif">são melhores que </font><span
style="font-family:monospace,monospace">"</span><span
style="font-family:monospace,monospace">postal_code_prefix".</span></div>
<div><br>
</div>
<div><font face="monospace, monospace">### <code r></font></div>
<div><font face="monospace, monospace">require("ggmap")</font></div>
<div><font face="monospace, monospace"># geocodeQueryCheck()</font></div>
<div><font face="monospace, monospace">adr1 <- c('Rua Toshinobo
Katayama, 178, Dourados, MS, Brazil, 79806-030', ### endereço
completo</font></div>
<div><font face="monospace, monospace"> 'Rua Toshinobo
Katayama, 171, Dourados, MS', ### endereço completo</font></div>
<div><font face="monospace, monospace"> 'Dourados, MS,
79806-029', ### não cadastrado, prefixo
válido</font></div>
<div><font face="monospace, monospace"> 'Dourados, MS,
79899-333', ### cep inexistente</font></div>
<div><font face="monospace, monospace"> 'Dourados, MS,
79806', ### apenas prefixo</font></div>
<div><font face="monospace, monospace"> 'Dourados, MS,
79806030', ### cep correto</font></div>
<div><font face="monospace, monospace"> 'Dourados, MS,
79823460', ### cep correto</font></div>
<div><font face="monospace, monospace"> 'Dourados, MS,
79804970') ### cep correto, zona rural</font></div>
<div><font face="monospace, monospace"><br>
</font></div>
<div><font face="monospace, monospace">res1 <- geocode(adr1,
output="more")</font></div>
<div><font face="monospace, monospace">res1[c(1:4, 10)]</font></div>
<div><font face="monospace, monospace"># lon lat
type loctype postal_code</font></div>
<div><font face="monospace, monospace"># 1 -54.80372 -22.23004
street_address rooftop <NA></font></div>
<div><font face="monospace, monospace"># 2 -54.80460 -22.22413
street_address range_interpolated <NA></font></div>
<div><font face="monospace, monospace"># 3 -54.80027 -22.22395
postal_code_prefix approximate <NA></font></div>
<div><font face="monospace, monospace"># 4 -54.79138 -22.22623
bus_station approximate <NA></font></div>
<div><font face="monospace, monospace"># 5 -54.80027 -22.22395
postal_code_prefix approximate <NA></font></div>
<div><font face="monospace, monospace"># 6 -54.80409 -22.22820
postal_code approximate 79806-030</font></div>
<div><font face="monospace, monospace"># 7 -54.83732 -22.21741
postal_code approximate 79823-460</font></div>
<div><font face="monospace, monospace"># 8 -54.80988 -22.21471
postal_code_prefix approximate <NA></font></div>
<div><span style="font-family:monospace,monospace">###
</code></span><br>
</div>
<div><br>
</div>
<div>Testando apenas os primeiros 30 ceps do arquivo que você
disponibilizou...</div>
<div><br>
</div>
<div><font face="monospace, monospace">### <code r><br>
</font></div>
<div><font face="monospace, monospace">url0 <- "<a
moz-do-not-send="true"
href="http://leg.ufpr.br/%7Eelias/tmp/cep_curitiba_cwb_georef_longlat.txt">http://leg.ufpr.br/~elias/tmp/cep_curitiba_cwb_georef_longlat.txt</a>"</font></div>
<div><font face="monospace, monospace">tmp0 <- read.table(url0,
head=T, nrows=30)</font></div>
<div><font face="monospace, monospace">adr2 <-
paste0("Curitiba, PR, Brazil, ", tmp0[,1])</font></div>
<div><font face="monospace, monospace"><br>
</font></div>
<div><font face="monospace, monospace">res2 <- geocode(adr2,
output="more")</font></div>
<div><font face="monospace, monospace">cbind(tmp0,
res2[c(1:4,10)])</font></div>
<div><font face="monospace, monospace">table(res2$type)</font></div>
<div><font face="monospace, monospace"># route
postal_code_prefix postal_code </font></div>
<div><font face="monospace, monospace"># 2
14 14 </font></div>
<div><font face="monospace, monospace">### </code></font><br>
</div>
<div><br>
</div>
<div>Nesse pequeno teste, 16 consultas retornaram resultados muito
imprecisos (<span style="font-family:monospace,monospace">route </span>, <span
style="font-family:monospace,monospace">postal_code_prefix) </span><font
face="arial, helvetica, sans-serif">e os demais são poucos
precisos (</font><span style="font-family:monospace,monospace">postal_code)</span><span
style="font-family:monospace,monospace">.</span></div>
<div><font face="arial, helvetica, sans-serif"><br>
</font></div>
<div>Desse modo, acredito que não há grande vantagem em consultar
todos os ceps e o número de consultas poderia ser diminuído
consideravelmente se eles fossem 'generalizados" . A opção mais
radical seria fazer a consulta pelos prefixos (primeiros 5
dígitos) e outras mais brandas seriam algo do tipo:</div>
<div><br>
</div>
<div>
<div><font face="monospace, monospace">df <-
read.table(url0, head=T, nrows=1000)</font></div>
<div><font face="monospace, monospace">df$cep2 <-
round(df$cep/100)*100</font></div>
<div><font face="monospace, monospace">un <- unique(df$cep2);
length(un) # 135</font></div>
</div>
<div><font face="monospace, monospace"><br>
</font></div>
<div><font face="arial, helvetica, sans-serif">Nesse caso seriam
135 consultas ao invés das 1000 iniciais, o que facilitaria
bem a tarefa. Logicamente, haveria uma perda ainda maior de
precisão/acurácia. Resta saber se a perda é
tolerável/aceitável.</font></div>
<div><font face="arial, helvetica, sans-serif"><br>
</font></div>
<div><font face="arial, helvetica, sans-serif">A descrição dos
códigos está em <</font><font face="monospace, monospace"><a
moz-do-not-send="true"
href="https://developers.google.com/maps/documentation/geocoding/?csw=1">https://developers.google.com/maps/documentation/geocoding/?csw=1</a></font><font
face="arial, helvetica, sans-serif">>.</font></div>
<div class="gmail_extra"><br clear="all">
</div>
</blockquote>
<br>
<pre class="moz-signature" cols="72">--
In God we trust, all others bring data.
– William Edwards Deming (1900-1993)</pre>
</body>
</html>