Ir para o conteúdo

osmc:Convenções/Coberturas municipais: mudanças entre as edições

 
(23 revisões intermediárias por 2 usuários não estão sendo mostradas)
Linha 1: Linha 1:
[[Arquivo:Osmc-cover-CO-Tunja-sample1.png|miniaturadaimagem|Coberturas base e ''overlay'' de Tunja ([https://osm.codes/CO-15001 CO-15001]).]] <!-- [[Arquivo:Osmc-cover-BR-SP-sample1.png|miniaturadaimagem]]-->
[[Arquivo:CoverSample-CO-15001.png|miniaturadaimagem|Coberturas base e ''overlay'' de Tunja ([https://osm.codes/CO-15001 CO-15001]).]] <!-- [[Arquivo:Osmc-cover-BR-SP-sample1.png|miniaturadaimagem]]-->


Conceitos de ''cobertura-base'' e ''cobertura-overlay''. Nas ilustrações tomaremos o exemplo de Tunja, primeiro municipio da Colômbia a adotar os OSMcodes.
Conceitos de ''cobertura-base'' e ''cobertura-overlay''. Nas ilustrações tomaremos o exemplo de Tunja, primeiro municipio da Colômbia a adotar os OSMcodes.
Linha 14: Linha 14:


É o conjunto de células maiores da grade logística municipal: elas não possuem "células-mãe". Se der sorte de o município ter mais que 25% do seu território coberto por uma única célula, a indexação e a cobertura-base serão dispensadas, mas isso é muito raro de ocorrer. Numa situação típica elege-se o nível de grade com 2 a 30 células.
É o conjunto de células maiores da grade logística municipal: elas não possuem "células-mãe". Se der sorte de o município ter mais que 25% do seu território coberto por uma única célula, a indexação e a cobertura-base serão dispensadas, mas isso é muito raro de ocorrer. Numa situação típica elege-se o nível de grade com 2 a 30 células.
Ver também [[osmc:Convenções/Coberturas municipais/Algoritmos#Cobertura-base]].


==Cobertura-overlay==
==Cobertura-overlay==
Linha 20: Linha 22:
[[Arquivo:Osmc-Tunja-Overlay-build.png|centro|580px]]
[[Arquivo:Osmc-Tunja-Overlay-build.png|centro|580px]]


Acima a construção do ''overlay'' de Tunja a partir da grade científica, buscando-se as áreas urbanas contíguas a partir do centro histórico;  e seu resultado já indexado em complemento à cobertura-base. O núcleo do município é definido pela Wikipedia: no caso de [[wikipedia:Tunja|Tunja]] fixou-se [https://osm.codes/geo:5.533333,-73.366667 geo:5.5333,-73.3667].
Acima a construção da cobertura-''overlay'' de Tunja a partir da grade científica, buscando-se as áreas urbanas contíguas a partir do núcleo;  e seu resultado já indexado em complemento à ''cobertura-base''. O núcleo urbano do município é definido pela Wikipedia: no caso de [[wikipedia:Tunja|Tunja]] fixou-se [https://osm.codes/geo:5.533333,-73.366667 geo:5.5333,-73.3667].


===Visualização===
A finalidade da cobertura-''overlay'' é proporcionar maior encurtamento de geocódigo nas áreas urbanas ou mais densamente povoadas, atendendo melhor a um número maior de usuários. Devido à alta concentração em pequenas regiões, pode relevante.  Na ilustração a distribuição populacional da Colômbia, destacando grandes vazios e picos de densidade populacional.


Quando o município faz uso de overlay, a melhor forma de mostrar a grade de referência é destacando a distribuição de geocódigos com e sem overlay.
[[Arquivo:OSMC-cover-overlay-pop-CO.png|centro|semmoldura|520px]]
 
A estratégia de privilegiar essas regiões foi usada em outros geocódigos, tais como [[wikipedia:Código de Endereçamento Postal|CEP]], [[wikipedia:ZIP Code|ZIP code]], [[wikipedia:Mapcode|Mapcod]] e [[wikipedia:pluscode|PlusCode]]. Em particular a estratégia de coberturas heterogêneas adotada, para reduzir dígitos, é muito parecida com a Mapcod.
 
===Visualização ===
 
Quando o município faz uso de cobertura-''overlay'', a melhor forma de mostrar a grade de referência é destacando a distribuição de geocódigos com e sem overlay.
[[Arquivo:Osmc-Tunja-gredeLogisticaInicial.png|centro|580px]]
[[Arquivo:Osmc-Tunja-gredeLogisticaInicial.png|centro|580px]]


Grade logistica incial de Tunja, onde se percebe a redução em 1 dígito nas áreas urbanas, devido ao uso de overlay.
Grade logistica incial de Tunja, onde se percebe a '''redução em 1 dígito''' nas áreas urbanas centrais (contorno azul), devido ao uso de overlay. A reserva pode ser utilizada tanto para resolver problemas de alteração de borda, como para expandir a área urbana (no caso uma segunda zona de crescimento urbano já perceptível).
 
No exemplo abaixo a cobertura completa de BR-SP-Campinas, onde, supondo estabilidade, a opção foi por adotar o máximo de overlays, tendo em vista que a cobertura-base é mais grosseira. Toda a área urbana, presente e "futura" está contemplada.
[[Arquivo:CoverSamples-BR-SP-Campinas.png|centro|580px]]
 
==Estabilidade e reserva==
Quando uma cobertura municipal é criada, a recomendação é deixar uma reserva de pelo menos 2 células.  Elas serão adicionadas com novos índices em caso de expansão ou mudança territorial. 
 
Importante lembrar que mudanças "por equivoco" não ocorrem devido ao "[https://git.osm.codes/osm-stable projeto OSM Stable]", e os índices (primeiro dígito) não mudam mais depois que a cobertura é homologada com os representantes da jurisdição.
 
As seguintes situações, com respectivos '''riscos de ocorrência''' e impactos, podem ocorrer sobre o geocódigo logístico, quando oficialmente utilizado como código postal:
 
{| class="wikitable"
|+
!Situação
!Risco
!Impacto nos geocódigos
|-
| Mudança de nome
|baixo
|'''Nenhum''' se o país '''não usa nome''', como no caso da Colômbia (usa DIVIPOLA). <br />'''Baixo''' se '''usa nome'''. Requer  gestão de transição do prefixo, como  no caso do Brasil.
|-
|Mudança territorial por imprecisão cartográfica
| médio
|'''Baixo'''. A mudança "sutil" de fronteiras é bem documentada no OpenStreetMap. No OSMcodes são gerenciadas por períodos de estabilidade através do "projeto OSM-Stable", no ''git''. O impacto maior é a troca de município em endereços próximos da fronteira, portanto troca de prefixo e/ou de dígito indexador. '''O sufixo, mesmo de endereços da cidade vizinha, não é afetado''', justamente por regra de construção do OSMcodes Logístico, todo baseado na mesma grade.
|-
|Aumento acentuado percentual urbano
|médio condicional
|'''Mínimo'''. Os moradores de áreas recém-urbanizadas recebem positivamente o impacto de novos ''overlays'', que proporcionam geocódigos mais curtos (tipicamente impacto da troca de 2 dígitos pelo indexador). Em seguida, com o consumo da reserva, não haverá mais esse benefício, mas ao contrário, não há pressão da população por esse benefício, justamente por haver pressão maior por estabilidade. <br />'''Condição de risco''': quanto maior o município, menor o risco de aumento percentual de área urbanizada. No Brasil, p. ex., o risco maior é nos 8% de municípios com menos de 100 km2.
 
|-
|Mudança territorial por demarcação
|baixo
|'''Baixo''' se '''absorvido''' por coberturas de reserva, com impacto análogo ao caso da mudança por imprecisão. <br />'''Alto''' se '''não-absorvido'''. A mudança por demarcação é arbitrária, podem ocorrer desmembramentos ou acréscimos, até mesmo extinção de municípios. Cabe à jurisdição afetada gerenciar o impacto.
|}
 
A noção mais realista da estabilidade territorial das unidades jurídicas de um país vem da estatística aplicada ao histórico principalmente jurídico. O número médio anos que ficou sem uma mudança, dentro de uma amostra de 20 anos, e a média de mudanças por ano, são indicadores do risco.
 
Alguns indícios podem ser levantados com apoio do OSM e da Wikidata, mas o ideal é realizar o levantamento com apoio do órgão local (por ex. IBGE no caso do Brasil e DANE no caso da Colômbia). '''o levantamento de evidências e a estimativa de risco/estabilidade é pré-requisito para a assinatura de acordos''', principalmente quando envolvendo o compromisso de uso do OSMcodes como código postal oficial.
 
==(Pendências)==
Overlay:
 
*https://github.com/osm-codes/GGeohash/issues/20
*https://github.com/osm-codes/GGeohash/issues/24
*https://github.com/osm-codes/GGeohash/issues/25
*https://github.com/osm-codes/CO_new/issues/22
*https://wiki.addressforall.org/doc/dg_talk:Stable
 
Algoritmo de overlay:
 
#cobrir area urbana;
#ordenar células overlay por % de área urbana que contém;
#Ficar com as que cobrem maior area, até limite de 30 celulas.
 
===Humanos calibrando valor de resto e de poeira ===
[[Arquivo:Lixo-exemplo-bug-ilustra1.png|miniaturadaimagem|exemplo de https://test.osm.codes/BR-PB-SaoJoaoCariri~53]]
Em alguns casos como SaoJoaoCariri ainda cabe o uso de uma cobertura-base mais densa: neste caso com 31 celulas.  E talvez avaliar de um pouco mais de 100 m2 ajude a descartar celulas de poeira.
 
== Grade científica municipal ==
Para apenas um caracter, como o último dígito não é hexadecimal, apenas 834 municípios contemplam.  Para 2 caracteres (''covers_frstdigit''), incluem-se  mais 3787-834=2953 municípios. Ainda bom já que as coberturas possuem 5, então economizam o prefixo de 5-2=3 dígitos através do nome abreviado do município.
 
Todos os restantes apresentam coberturas municipais com mais de 16 células, de modo que precisam ser primeiro aglutinadas, ver segunda query.
 
ATENCAO: a representação ''cbits'' inclui no prefixo o país, para ficar só com o geocódigo local precisa remover os primeiros 8 bits! portanto tava tudo errado e precisa refazer! por hora está com algum bug pois expande com um zero na frente.
 
Caso de [https://afa.codes/BR-AL-Belem BR-AL-Belem], suas das células de cobertura são derivadas da subdivisão-em-8 das células-mãe  "7774", "7775", "7776" e "7777". Abaixo a cobertura completa, destacando apenas o último dígito.
 
[[Arquivo:AfaCode-BR-cover7775.png|thumb|580px|Da célula "[https://afa.codes/BR+7775 BR+7775]" são utilizadas apenas as filhas "7775S" e "7775T"]]
 
[[Arquivo:AfaCode cientific-BR-AL-Belem.png.png|centro|semmoldura|620px]]
 
Ou seja,  da "[https://afa.codes/BR+7774 7774]" foram utilizadas as filhas "[https://afa.codes/BR+7774Z '''Z''']" e "[https://afa.codes/BR+7774Y '''Y''']"; da "[https://afa.codes/BR+7775 7775]" (em destaque) as filhas "[https://afa.codes/BR+7775S '''S''']" e "[https://afa.codes/BR+7775T '''T''']"; da "7776" as filhas "'''N'''" e "'''P'''"; da "7777" as filhas "'''J'''" e "'''K'''".
[[Arquivo:Teste sub16h.png|miniaturadaimagem|407x407px|A célula "7775S" se subdivide em "8" e "9" e a célula "7775T" em "a" e "b". Só a '''partir desta subdivisão''' que os geocódigos adquirem hierarquia consistente, preservando o primeiro dígito. Por isso é recomendado a prefeitura iniciar sua grade pelo primeiro nível hexadecimal, caso não seja sua cobertura.
 
Nesse caso o elegante, para se manter hierárquico seria uma cobertura de 11 células já que nem todas fazem parte.]]
 
<syntaxhighlight lang="sql">
CREATE VIEW tmp_br_gradecientifica_direta16  AS
SELECT *, cardinality(covers_frstdigit)=n_covers AS is_eq
FROM (
  select  isolabel_ext, length(covers[1]) len,
          array_text_to_distright(covers,2) as covers_frstdigit,  -- para 1 só usar array_text_to_distright(covers)
          cardinality(covers) n_covers
  from (
    select isolabel_ext, array_agg( natcod.vbit_to_baseh(substring(cbits,11),16,true)  order by cbits) AS covers
    from osmc.coverage
    where not(is_overlay) and  isolabel_ext like 'BR-%-%'
    group by 1
  ) t1 where cardinality(covers)<=16
) t2
WHERE cardinality(covers_frstdigit)=n_covers
ORDER BY 5 desc,1
;
 
-- restantes 1783 municípios resolvidos fazendo agregação parcial com corte do último dígito. Em média cortamos 3 dígitos com o prefixo
SELECT *, cardinality(covers_frstdigit) AS n_covers2
FROM (
  select  isolabel_ext, length(covers[1]) len,
          array_text_to_distleft( array_text_to_distright(covers,3), 2) as covers_frstdigit,  -- para 1 só usar array_text_to_distright(covers)
          cardinality(covers) n_covers
  from (
    select isolabel_ext, array_agg( natcod.vbit_to_baseh(substring(cbits,11),16,true)  order by cbits) AS covers
    from osmc.coverage
    where not(is_overlay) and  isolabel_ext like 'BR-%-%'
    group by 1
  ) t1 where cardinality(covers)>16
) t2
ORDER BY 5 desc,1
;
</syntaxhighlight>
 
Exemplos:<pre>
          isolabel_ext          | len |    covers_frstdigit    | n_covers | is_eq
--------------------------------+-----+-------------------------+----------+-------
BR-AL-Belem                    |  6 | {J,K,N,P,S,T,Y,Z}      |        8 | t
BR-AL-Canapi                  |  5 | {H,M,R,V}              |        4 | t
BR-AL-CoqueiroSeco            |  6 | {J,N,P,T,Y}            |        5 | t
BR-AL-PaoAcucar                |  5 | {H,M,R,V}              |        4 | t
BR-AL-Paripueira              |  6 | {J,K,N,P,S,T,Z}        |        7 | t
BR-AL-Penedo                  |  5 | {H,M,R,V}              |        4 | t
BR-AL-SantaLuziaNorte          |  6 | {J,K,N,P}              |        4 | t
BR-AL-Satuba                  |  6 | {J,K,P,S,Y,Z}          |        6 | t
BR-AM-Jurua                    |  4 | {G,Q}                  |        2 | t
BR-BA-Abaira                  |  5 | {H,M}                  |        2 | t
BR-BA-Alagoinhas              |  5 | {H,M,R,V}              |        4 | t
...
BR-TO-PortoAlegreTocantins    |  5 | {H,R}                  |        2 | t
BR-TO-PresidenteKennedy        |  5 | {H,M,R,V}              |        4 | t
BR-TO-RioBois                  |  5 | {H,M,R,V}              |        4 | t
BR-TO-TaipasTocantins          |  5 | {H,M,R,V}              |        4 | t
BR-TO-Tupirama                |  5 | {H,M,R}                |        3 | t
BR-TO-Tupiratins              |  5 | {H,M,R,V}              |        4 | t
(834 rows)
 
 
          isolabel_ext          | len |                covers_frstdigit                  | n_covers
---------------------------------+-----+---------------------------------------------------+---------
BR-AC-Acrelandia                |  5 | {1H,1R,1V,3H,3M,4R,6H}                            |        7
BR-AC-AssisBrasil              |  5 | {1H,8R,8V,9R,aH,aM,aR,aV,bH,bM,bR,dV,fM}          |      13
BR-AC-Brasileia                |  5 | {1M,aM,bH,bM,bR,bV,cR,cV,eH,eM,eR}                |      11
BR-AC-Bujari                    |  5 | {2H,5R,5V,7H,7M,7R,7V,dH,dM}                      |        9
BR-AC-Capixaba                  |  5 | {0H,5M,aR,aV,fV}                                  |        5
BR-AC-CruzeiroSul              |  4 | {2Q,3Q,8G,9G}                                    |        4
BR-AC-Epitaciolandia            |  5 | {cV,dR,eH,eM,eV,fH}                              |        6
BR-AC-Feijo                    |  4 | {3G,3Q,6Q,9G,cG}                                  |        5
BR-AC-Jordao                    |  5 | {0V,1R,2M,2V,3H,3M,3R,3V,8M,9H,9M,9R,9V}          |      13
...
BR-TO-TaipasTocantins          |  5 | {6H,6M,6R,6V}                                    |        4
BR-TO-Talisma                  |  5 | {4H,4M,4R,4V,5H,5R,6M,7H,7M}                      |        9
BR-TO-Tocantinia                |  5 | {2H,2M,2R,2V,8H,8M}                              |        6
BR-TO-Tocantinopolis            |  5 | {1M,bH,bM,bR,bV}                                  |        5
BR-TO-Tupirama                  |  5 | {8R,aH,aM}                                        |        3
BR-TO-Tupiratins                |  5 | {0H,0M,aR,aV}                                    |        4
BR-TO-Wanderlandia              |  5 | {8M,8V,9H,9R,aM}                                  |        5
BR-TO-Xambioa                  |  5 | {8R,aH,aR,dV,fM}                                  |        5
(3787 rows)
 
 
  isolabel_ext        |len |          covers_frstdigit                      |n_covers | n_covers2
-----------------------+----+------------------------------------------------+---------+-----------
BR-AP-LaranjalJari    |  5 | {23,29,2f,33,36,4a,83,84,85,...,8d,98}        |      29 |        15
BR-MT-Querencia      |  5 | {07,0d,0f,10,11,12,13,14,16,18,19,1a,bb}      |      29 |        13
BR-AC-Tarauaca        |  5 | {38,39,3a,3b,3c,3d,3e,3f,90,91,94,95}          |      28 |        12
BR-AM-Beruri          |  5 | {14,b1,b2,b3,b6,b8,b9,bb,bc,bd,be,bf}          |      28 |        12
BR-MS-RibasRioPardo  |  5 | {07,0c,0d,0e,0f,12,18,1a,24,25,27,30}          |      29 |        12
...
BR-PR-Marumbi        |  6 | {6b,6e,c4}                                      |    17 |        3
BR-RN-SaoVicente      |  6 | {de,df,f5}                                      |    17 |        3
BR-RS-Cidreira        |  6 | {a3,a4,a6}                                      |    17 |        3
BR-SC-Mondai          |  6 | {54,56,57}                                      |    17 |        3
BR-SC-SaoJoseCedro    |  6 | {73,76,77}                                      |    18 |        3
(1783 rows)
</pre>
 
 
==Ver também==
*[[Subpavimentação]]
*algoritmos em [[osmc:Convenções/Coberturas municipais/Algoritmos]]
 
*...
 
[[Categoria:OSMcodes]]
2 434

edições