osmc:Metodologia: mudanças entre as edições
mSem resumo de edição |
|||
Linha 7: | Linha 7: | ||
[[Arquivo:Osmc-CO-projOficial.png|centro|miniaturadaimagem|380px|''Projeção igual-área nacional'' da Colômbia. Não é perfeita mas é satisfatória para o Censo. <br/>As tonalidades (vermelhas e azuis) representam o ''perfil de distorção de área'' (inferior a 2%) na projeção cilíndrica UTM oficial da Colômbia, "resolución 471 de 2020 del IGAC".]] | [[Arquivo:Osmc-CO-projOficial.png|centro|miniaturadaimagem|380px|''Projeção igual-área nacional'' da Colômbia. Não é perfeita mas é satisfatória para o Censo. <br/>As tonalidades (vermelhas e azuis) representam o ''perfil de distorção de área'' (inferior a 2%) na projeção cilíndrica UTM oficial da Colômbia, "resolución 471 de 2020 del IGAC".]] | ||
[[Arquivo:Osmc-CO-Powers2.png|280px|miniaturadaimagem|[[wikipedia:Power of two|Potências de 2]], partindo do metro e crescendo até o valor correspondente à largura das células da cobertura ''L0''. <br/>Conforme a [[Prefixos binários|convenção IEC de prefixos binários]], múltiplos de 1024 metros são abreviados como '''Kim''' (''kilobinary meter''). ]] | [[Arquivo:Osmc-CO-Powers2.png|280px|miniaturadaimagem|[[wikipedia:Power of two|Potências de 2]], partindo do metro e crescendo até o valor correspondente à largura das células da cobertura ''L0''. <br/>Conforme a [[Prefixos binários|convenção IEC de prefixos binários]], múltiplos de 1024 metros são abreviados como '''Kim''' (''kilobinary meter'').]] | ||
Sobre o polígono dos limites territoriais é encaixada uma grade de ''potência de 2'' (tabela ao lado), desenhado um mosaico de no '''máximo 16 quadrados'''. | Sobre o polígono dos limites territoriais é encaixada uma grade de ''potência de 2'' (tabela ao lado), onde será desenhado um mosaico de no '''máximo 16 quadrados'''. O encaixe é por tentativa-erro, testa-se com grades maiores e menores. | ||
Abaixo, em roxo, com ''ij'' as coordenadas ''i'' horizontal e ''j'' vertical, o conjunto dos quadrados que cobrem o território | No caso da Colômbia o '''melhor encaixa''' foi conseguido com quadrados de 2<sup>19</sup> m de lado, ou seja, 2<sup>19</sup> m =524,29 km = 512×1024 m = '''512 Kim'''. | ||
Abaixo, em roxo, com ''ij'' as coordenadas ''i'' horizontal e ''j'' vertical, o conjunto dos quadrados que cobrem o território, apelidado de "'''cobertura nacional'''". | |||
[[Arquivo:Osmc-CO-coverEx1.png|centro|semmoldura|420px]] | [[Arquivo:Osmc-CO-coverEx1.png|centro|semmoldura|420px]] | ||
Linha 25: | Linha 27: | ||
[[Arquivo:Osmc-CO-cover-L0-Zcurve.png|thumb|280px|Indexação de ''L0'' na Colômbia, ajustada à Curva-Z.]] | [[Arquivo:Osmc-CO-cover-L0-Zcurve.png|thumb|280px|Indexação de ''L0'' na Colômbia, ajustada à Curva-Z.]] | ||
Na Colômbia '''a decisão foi por otimizar''', ou seja, seguir-se, dentro do possível, a curva de preenchimento em ''L0''. Na ilustração ao lado a cobertura continental em amarelo, e os índices fora de ordem em roxo. O indexador, para sua representação humana, usando a representação hexadecimal (base 16). | Na Colômbia '''a decisão foi por otimizar''', ou seja, seguir-se, dentro do possível, a curva de preenchimento em ''L0''. Na ilustração ao lado a cobertura continental em amarelo, e os índices fora de ordem em roxo. O indexador, para sua representação humana, usando a representação hexadecimal (base 16), que vai de "0" a "9" e "a" a "f". | ||
A partir de então, conforme veremos, é adotado como oficial (notação científica para o Censo e outras aplicações) o rótulo hexadecimal de células da grade oficial, tendo como primeiro dígito os rótulos do mapa acima, do nível ''L0''. | A partir de então, conforme veremos, é adotado como oficial (notação científica para o Censo e outras aplicações) o rótulo hexadecimal de células da grade oficial, tendo como primeiro dígito os rótulos do mapa acima, do nível ''L0''. | ||
Linha 41: | Linha 43: | ||
* ... Até chegar nas células da grade nível ''L19'', com 1 m de lado. | * ... Até chegar nas células da grade nível ''L19'', com 1 m de lado. | ||
A grade nacional ''L0'' tem 16 células ao todo cobrindo o | A grade nacional ''L0'' tem 16 células ao todo cobrindo o território nacional, de modo que são ao todo 16×4=64 células ''L1'', 16×16=256 células ''L2'', e assim por diante, até que no nível ''L19'' as células possuirão 1 metro de lado, e serão bilhões de células cobrindo o território nacional. | ||
O indexador desse conjunto hierárquico de grades não é um número mas um [[código natural]], de modo que a rotulação numérica hexadecimal tradicional foi [[Código_natural/Notação_posicional#Base_Nh|extendida]] para que todos os códigos possam ser devidamente representados, além dos níveis pares: | O indexador desse conjunto hierárquico de grades não é um número mas um [[código natural]], de modo que a rotulação numérica hexadecimal tradicional foi [[Código_natural/Notação_posicional#Base_Nh|extendida]] para que todos os códigos possam ser devidamente representados, além dos níveis pares: | ||
Linha 49: | Linha 51: | ||
Há ainda a possibilidade de criar '''"grades degeneradas"''', [[Generalized_Geohash/pt#Representação_geométrica|geometricamente unindo células vizinhas]] da sequência de indexação. Essa união de vizinhas resulta em grades retangulares ao invés de quadradas, e seu nível hierárquico é contabilizado como "nível meio" (''L½'', ''L1½'', ''L2½'', ...). | Há ainda a possibilidade de criar '''"grades degeneradas"''', [[Generalized_Geohash/pt#Representação_geométrica|geometricamente unindo células vizinhas]] da sequência de indexação. Essa união de vizinhas resulta em grades retangulares ao invés de quadradas, e seu nível hierárquico é contabilizado como "nível meio" (''L½'', ''L1½'', ''L2½'', ...). | ||
O efeito prático disso é o mesmo que subdividir em 2 sucessivamente, de modo que todos os códigos binários com 1 a 19×2=38 dígitos binários (bits) podem ser representados por células em 38 grades distintas. As células dessas grades serão sempre identificadas por um código expresso na "notação científica", a [[Código_natural/Notação_posicional#Base_Nh|base16h]] (que é a hexadecimal extendida). | O efeito prático disso é o mesmo que subdividir em 2 sucessivamente, de modo que todos os códigos binários com 1 a 19×2=38 dígitos binários (bits) podem ser representados por células em '''38 grades distintas''', formando um [[Discrete National Grid Systems/pt|sistema hierárquico de grades]]. Grades ''L0'', ''L½'', ''L1'', ''L1½'', ''L2'', ''L2½'', ..., ''L18½'', ''L19''. | ||
As células dessas grades serão sempre identificadas por um código expresso na "notação científica", a [[Código_natural/Notação_posicional#Base_Nh|base16h]] (que é a hexadecimal extendida para toda a hierarquia). | |||
== Geocódigo logístico == | == Geocódigo logístico == |
Edição das 10h19min de 7 de janeiro de 2024
Descrição do algoritmo do AFA.codes
Projeção e cobertura nacionais
Começa-se com o mapa dos limites territoriais na projeção igual-área adotada oficialmente pelo país, designada projeção igual-área nacional. Os limites podem abranger a Zona econômica exclusiva e arquipélagos, conforme decisão soberana do país.
Sobre o polígono dos limites territoriais é encaixada uma grade de potência de 2 (tabela ao lado), onde será desenhado um mosaico de no máximo 16 quadrados. O encaixe é por tentativa-erro, testa-se com grades maiores e menores.
No caso da Colômbia o melhor encaixa foi conseguido com quadrados de 219 m de lado, ou seja, 219 m =524,29 km = 512×1024 m = 512 Kim.
Abaixo, em roxo, com ij as coordenadas i horizontal e j vertical, o conjunto dos quadrados que cobrem o território, apelidado de "cobertura nacional".
Em seguida os 16 quadrados recebem indexadores (rótulos) sequenciais no lugar de coordenadas ij.
A sequência de indexação é arbitrária, poderia ser de cima para baixo da esquerda para a direita. Todavia, a formação da grade, conforme veremos a seguir, exige a escolha de uma curva de preenchimento (Curva-Z no caso foi a escolha soberana da Colômbia).
Os cálculos de vizinhança na curva de preenchimento são complexos, quanto maior a quantidade de células L0 que preservarem a distribuição de vizinhança original, mais simples o algoritmo de cálculo de vizinhança. Simplificar ou não o algoritmo (otimizar) é também uma decisão soberana.
Na Colômbia a decisão foi por otimizar, ou seja, seguir-se, dentro do possível, a curva de preenchimento em L0. Na ilustração ao lado a cobertura continental em amarelo, e os índices fora de ordem em roxo. O indexador, para sua representação humana, usando a representação hexadecimal (base 16), que vai de "0" a "9" e "a" a "f".
A partir de então, conforme veremos, é adotado como oficial (notação científica para o Censo e outras aplicações) o rótulo hexadecimal de células da grade oficial, tendo como primeiro dígito os rótulos do mapa acima, do nível L0.
Formação da grade científica nacional
A partir dos quadrados da cobertura nacional será formada a grade, de modo que são apelidados de "células da grade nivel zero" (abreviadamente "células L0"). As células são todas iguais, com mesma área e formato.
Em seguida cada célula L0 é subdividia sucessivamente em 4:
Tomando como exemplo a Colômbia temos:
- A primeira subdivisão das células L0 resulta em células da grade nível L1, cada uma das 4 células com lado h1 = h0/2 ≈ 256 km.
- Em seguida a subdivisão das 4 células L1 resulta em células da grade nível L2, cada uma das 4 células com lado h2 = h1/2 = h0/4 ≈ 128 km. A cada célula L0 correspondem portanto 4×4=16 células L2.
- Em seguida a subdivisão das 16 células L2 resulta em células da grade nível L3...
- ... Até chegar nas células da grade nível L19, com 1 m de lado.
A grade nacional L0 tem 16 células ao todo cobrindo o território nacional, de modo que são ao todo 16×4=64 células L1, 16×16=256 células L2, e assim por diante, até que no nível L19 as células possuirão 1 metro de lado, e serão bilhões de células cobrindo o território nacional.
O indexador desse conjunto hierárquico de grades não é um número mas um código natural, de modo que a rotulação numérica hexadecimal tradicional foi extendida para que todos os códigos possam ser devidamente representados, além dos níveis pares:
Há ainda a possibilidade de criar "grades degeneradas", geometricamente unindo células vizinhas da sequência de indexação. Essa união de vizinhas resulta em grades retangulares ao invés de quadradas, e seu nível hierárquico é contabilizado como "nível meio" (L½, L1½, L2½, ...).
O efeito prático disso é o mesmo que subdividir em 2 sucessivamente, de modo que todos os códigos binários com 1 a 19×2=38 dígitos binários (bits) podem ser representados por células em 38 grades distintas, formando um sistema hierárquico de grades. Grades L0, L½, L1, L1½, L2, L2½, ..., L18½, L19.
As células dessas grades serão sempre identificadas por um código expresso na "notação científica", a base16h (que é a hexadecimal extendida para toda a hierarquia).
Geocódigo logístico
Um subconjunto da grades científicas é utilizado nas aplicações logísticas, tendo em vista que o geocódigo hexadecimal é muito longo para o ser humano memorizar.
Para o geocódigo logístico, é necessário ter um código mais fácil de recordar, composto de:
- um prefixo, muito fácil de lembrar porque é o próprio município descrito em formato abreviado. Por exemplo
CO-Tunja
na Colômbia ouBR-SP-SJC
(São Jose dos Campos) no Brasil;
- um sufixo de 4 a 6 caracteres representando células da grade, para se localizar a porta de casa. Em países maiores o sufixo pode (conforme decisão soberana) ser expresso na Base32.
Por exemplo "GGQT" sufixo deCO-Tunja~GGQT
no meio urbano de Tunja; "2YNHP" sufixo deBR-SP-SJC~2YNHP
no meio rural de São José.
Para chegar no código logístico, o prefixo BR-SP-SJC
aponta para a cobertura do município, que consiste num conjunto indexado de até 30 células que cobrem o município, sendo que cada uma é associada a um índice, escolhido num alfabeto de 32 caracteres, descrito nas variantes da Base32.
Coberturas base e overlay sobre Tunja (CO-15001).
Estas 30 células cobrem o município de maneira otimizada. São as células da cobertura do município. Só definimos até 30 células para ter 2 caracteres de reserva, caso tenha alguma mudança no polígono do município.
O digito correspondente a cada célula de cobertura municipal vai ser o primeiro digito do sufixo do código logístico.
Cada uma das células da cobertura é dividida em 32, sucessivamente, até chegar a um nível de 1 m. Cada vez que a célula é dividida em 32, o sufixo do código é acrescido de um digito.
No momento de definir a cobertura do município, é possível privilegiar a cobertura da área urbana para garantir que o código seja mais curto nestas áreas, ou que a zona apontada seja menor com o mesmo número de caracteres. Podemos considerar como padrão ter sufixos de 6 dígitos, sendo que na área urbana, estes 6 dígitos apontam para células de 6m e na área rural, apontam para áreas de 32m.
As coberturas todas, de todos os municípios, não é uma caixa preta como a definição dos bairros. O padrão DNGS exige que as coberturas municipais sejam dados abertos. No caso dos AFAcodes da Colômbia, que implementam DNGS, os dados das coberturas municipais estão em https://git.afa.codes/CO_new/blob/main/data/coverage.csv