osmc:Convenções/Coberturas municipais: mudanças entre as edições
Sem resumo de edição |
|||
Linha 99: | Linha 99: | ||
Todos os restantes apresentam coberturas municipais com mais de 16 células, de modo que precisam ser primeiro aglutinadas, ver segunda query. | 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! | |||
<syntaxhighlight lang="sql"> | <syntaxhighlight lang="sql"> |
Edição das 13h25min de 13 de fevereiro de 2024
![](/w/images/thumb/d/de/CoverSample-CO-15001.png/300px-CoverSample-CO-15001.png)
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!
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
- ...