osmc:Convenções/Coberturas municipais: mudanças entre as edições
Sem resumo de edição |
|||
(17 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
[[Arquivo: | [[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 18: | Linha 18: | ||
==Cobertura-overlay== | ==Cobertura-overlay== | ||
Se a | Se a cobertura-base não gastou muitas células (menos que 30) e se o município não é dominado por áreas urbanas, pode-se otimizar os geocódigos do '''núcleo urbano''' com células de cobertura menores. | ||
[[Arquivo:Osmc-Tunja-Overlay-build.png|centro|580px]] | [[Arquivo:Osmc-Tunja-Overlay-build.png|centro|580px]] | ||
Acima a construção da '' | 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]. | ||
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. | |||
[[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 === | ===Visualização === | ||
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. | 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== | ==Estabilidade e reserva== | ||
Linha 36: | Linha 46: | ||
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. | 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 | 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" | {| class="wikitable" | ||
|+ | |+ | ||
Linha 43: | Linha 54: | ||
!Impacto nos geocódigos | !Impacto nos geocódigos | ||
|- | |- | ||
|Mudança de nome | | Mudança de nome | ||
| | |baixo | ||
|'''Nenhum''' no | |'''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 | |Mudança territorial por imprecisão cartográfica | ||
|médio | | 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. | |'''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 | |Mudança territorial por demarcação | ||
|baixo | |baixo | ||
|'''Alto'''. 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. | |'''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. | ||
|} | |} | ||
== (Pendências) == | 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]] | [[Categoria:OSMcodes]] |
Edição atual tal como às 17h21min de 13 de fevereiro de 2024
Conceitos de cobertura-base e cobertura-overlay. Nas ilustrações tomaremos o exemplo de Tunja, primeiro municipio da Colômbia a adotar os OSMcodes.
Para que o osmCode logístico possa fazer uso de um prefixo mnemônico, que conforme o país será baseado no nome ISO (ex. BR-SP-Campinas
) ou no código oficial do município (ex. CO-15001
); é necessário que o sufixo, baseado em grade, seja totalmente compatível com a geometria do município.
Grade de referência
Em países pequenos, conforme destacado nas decisões soberanas sobre área territorial do país, apenas a grade científica é usada (geocódigos base16h orientados a dígitos de 4 bits).
Em países maiores, é necessário usar um geocódigo mais compacto, com dígitos de 5 bits (notação de base 32). Para tanto é eleito um subconjunto da grade científica que seja compativel com 5 bits a partir da grade de 1 metro. Esse subconjunto é denominado Grade logística. Apesar de ser compatível entre diferentes municípios do país, ele não é utilizado como "grade nacional", apenas como "grade municipal", justamente porque seu geocódigo parte do prefixo mnemônico da jurisdição municipal.
Cobertura-base
É 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
Se a cobertura-base não gastou muitas células (menos que 30) e se o município não é dominado por áreas urbanas, pode-se otimizar os geocódigos do núcleo urbano com células de cobertura menores.
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 Tunja fixou-se geo:5.5333,-73.3667.
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.
A estratégia de privilegiar essas regiões foi usada em outros geocódigos, tais como CEP, ZIP code, Mapcod e 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.
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.
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 "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:
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). 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. 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. 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
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 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.
Ou seja, da "7774" foram utilizadas as filhas "Z" e "Y"; da "7775" (em destaque) as filhas "S" e "T"; da "7776" as filhas "N" e "P"; da "7777" as filhas "J" e "K".
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
;
Exemplos:
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)
Ver também
- ...