osmc:Metodologia: mudanças entre as edições
(Criou página com 'Descrição do algoritmo do AFA.codes Comeca-se com o mapa dos limites territoriais na projeção igual-área adotada oficialmente pelo país. Os limites podem abranger a zona marítma de exploração econômica e arquipélagos, conforme decisão soberana do país. Sobre o polígono dos limites territoriais é desenhado um mosaico de no maximo 16 quadrados, apelidados de "cobertura nacional". Os quadrados da cobertura, apelidados de "celulas da grade nivel zero" (abrev...') |
|||
(49 revisões intermediárias por 2 usuários não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
{{osmc_info}} | |||
A metodologia e algoritmos do sistema <code>AFA.codes</code> seguem em parte um padrão e em parte as [[DNGS/Decisões soberanas|decisões soberanas do país]]. | |||
O sistema AFAcodes implementou a metodologia sugerida pelo padrão [[DNGS]], semelhante ao padrão ISO [[DGGS]], particionando uma superfície com grandes células de igual-área. | |||
A | A diferença da metodologia [[DNGS]] para a [[DGGS]] é que a superfície [[DNGS]] é um território nacional, ao invés do globo inteiro. O padrão [[DNGS]] é também mais restritivo, demandando projeção (oficial nacional), [[geocódigos]], tamanhos e formatos de células válidos (quadriláteros em potências de 2) e um limite na quantidade de células iniciais (até 16). | ||
.... | == Projeção e cobertura nacionais == | ||
Começa-se com o mapa dos limites territoriais na [[DNGS/Decisões_soberanas#D2._Projeção_de_igual-área?|projeção igual-área]] adotada oficialmente pelo país, designada '''projeção igual-área nacional'''. Os limites podem abranger [[wikipedia:Maritime_boundary|limites marítimos]] e arquipélagos, conforme [[DNGS/Decisões soberanas|decisão soberana]] do país. | |||
[[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''' (''[[wikipedia:Binary_prefix|kilobinary meter]]'').]] | |||
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 é obtido por um '''algoritmo de varredura''', testa-se com grades maiores e menores, sobre a '''BBOX dos polígonos territoriais'''. | |||
[[Arquivo:Osmc-CO-coverEx1.png|centro|miniaturadaimagem|420px|No caso da Colômbia o '''melhor encaixe''' foi conseguido com quadrados de 2<sup>19</sup> m de lado, ou seja, 2<sup>19</sup> m = 524288 m = 512×1024 m = '''512 Kim'''. Em destaque, os quadrados que cobrem o território e formam a "'''cobertura nacional'''", com as coordenadas ''ji'' (''i'' horizontal e ''j'' vertical).]] | |||
===Escolha oficial da origem=== | |||
[[Arquivo:OSMC-CO-Origem-ilustra.png|miniaturadaimagem|Ajuste fino de posição para escolha da origem-XY. No caso da Colômbia a origem é o ponto XY (3678500,1494288) na projeção de SRID=9377.<br/>PS: as outras alternativas (ex. sem parte insular nem zona econômica), descartadas, [https://raw.githubusercontent.com/osm-codes/CO_new/main/assets/bbox-v3mins.800px.png foram documentadas].]] | |||
Conforme previsto [[DNGS/Decisões_soberanas#D2.1._Eixos_das_coordenadas_de_referência|na metodologia DNGS para escolha das coordenadas de referência]], um ajuste fino da posição da ''cobertura nacional'' é necessário para se estabelecer em definitivo o sistema de coordenadas e, consequentemente, os identificadores de célula. | |||
Apesar de ser uma escolha objetiva, baseada no simples encaixe nos limites oficiais, a escolha desses limites requer decisões soberanas, tais como escolha do buffer de segurança, e decisões sobre uso ou não de limites marítimos. | |||
=== Decisões sobre ajuste e desmembramento === | |||
[[Arquivo:BR-L0coverSci-f.png|miniaturadaimagem|380px|Desmembramento da célula "f" no Brasil, que resultou na partição em 8 células-filhas, do nível ''L1.5''. Apenas 4 delas em uso, as 4 restantes são reservas.]] | |||
O algoritmo de escolha das células ''L0'' é relativamente simples, resulta da interseção do polígono com a grade: se o número de células exceder a 16, será utilizada uma grade de nível mais grosseiro. | |||
Por ser uma decisão definitiva e com grande impacto na posterior usabilidade da grade, é uma decisão delicada, requer "ajuste humano", e portanto decisões adicionais. Principais exemplos de causa e ajuste: erros implícitos nas delimitações territoriais, importância das delimitações (divisor oceânico vs divisor territorial), decisões por reserva (maior em territórios disputados) e descontinuidades, tais como as ilhas do Havaí no polígono territorial dos EUA, que requerem inclusive uma projeção diferente. | |||
Uma das soluções técnicas para garantir a cobertura nacional em 16 células ''L0'' é o desmembramento, ilustrado para o caso do Brasil. O algoritmo de cobertura requer mínimo de ~30% de taxa de ocupação territorial sobre a célula de cobertura. As células com "grandes vazios" são candidatas ao desmembramento para que seus geocódigos possam ser reutilizados em porções desconexas, tipicamente as insulares (ilustração). | |||
===Indexação L0=== | |||
Em seguida os 16 quadrados recebem indexadores (rótulos) arbitrários no lugar de coordenadas ''ji''. Todavia, a formação da grade, conforme veremos a seguir, exige a [[DNGS/Decisões_soberanas#D4._Intervalos_de_geocódigos?|escolha de uma curva de preenchimento]]. | |||
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. | |||
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''. | |||
[[Arquivo:Osmc-CO-coverEx2.png|centro|miniaturadaimagem|420px|Na Colômbia, a decisão soberana foi por seguir a Curva-Z, dentro do possível. Na ilustração, a cobertura nacional com os índices em sua representação humana, usando a representação hexadecimal ([[Código_natural/Notação_posicional#Base_Nh|base16h]]), que vai de "0" a "9" e "a" a "f".]] | |||
[[Arquivo:Osmc-CO-cover-L0-Zcurve.png|thumb|280px|Indexação de ''L0'' na Colômbia, ajustada à Curva-Z. 81% das células ajustadas, apenas 3 (em roxo) fora do ordem. Toda a cobertura continental (amarelo) dentro da ordem.]] | |||
==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: | |||
[[Arquivo:Osmc-refinamentoQuadrada-v2.png|centro|480px]] | |||
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 ''h''<sub>1</sub> = ''h''<sub>0</sub>/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 ''h''<sub>2</sub> = ''h''<sub>1</sub>/2 = ''h''<sub>0</sub>/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 [[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: | |||
[[Arquivo:OsmCodes-hierarquiaBase16h-full3.png|centro|semmoldura|780px]] | |||
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''', 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== | |||
Um subconjunto da grades científicas <!-- obtido da representação dos 1 a 38 bits em um prefixo seguido de blocos de 5 bits (representáveis pela base32) --> é 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 [https://afa.codes/CO-Tunja <code>CO-Tunja</code>] na Colômbia ou [https://afa.codes/BR-SP-SJC <code>BR-SP-SJC</code>] (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 [[DNGS/Decisões_soberanas#D3a._Área_territorial_pequena?|países maiores]] o sufixo pode (conforme decisão soberana) ser expresso na [[Base32]]. <br />Por exemplo "GGQT" sufixo de [https://afa.codes/CO-15001~GGQT <code>CO-Tunja~GGQT</code>] no meio urbano de Tunja; "2YNHP" sufixo de [https://afa.codes/BR-SP-SJC~2YNHP <code>BR-SP-SJC~2YNHP</code>] no meio rural de São José. | |||
**o primeiro dígito desse sufixo de grade é, a rigor, ainda parte do nome. O dígito surge com a detecção do território municipal. Por exemplo <code>CO-Tunja~G</code>, conforme veremos, tem o primeiro dígito "G" definido junto com o nome. | |||
Para chegar no código logístico, o prefixo <code>BR-SP-SJC</code> 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]]. | |||
<gallery widths="400px" heights="300px"> | |||
Arquivo:OSMC-cober-base-CO-Tunja-i1.png|Cobertura-base de Tunja, composta de 11 células, já rotuladas pelo indexador base32. | |||
File:CoverSample-CO-15001.png|Coberturas base e ''overlay'' sobre Tunja ([https://osm.codes/CO-15001 CO-15001]). | |||
Arquivo:Osmc-Tunja-Overlay-build-cut.png|Coberturas base e ''overlay'' com respectivos rótulos. | |||
Arquivo:Osmc-Tunja-gredeLogisticaInicial.png|Detalhe da grade de Tunja com geocódigo logístico de 2 dígitos na área rural e '''1 dígito na urbana''', onde foram definidas células de ''overlay'' (contorno azul). | |||
</gallery> | |||
<!-- | |||
[[Arquivo:OSMC-cober-base-CO-Tunja-i1.png|miniaturadaimagem|Cobertura-base de Tunja, composta de 11 células, já rotuladas pelo indexador base32.]] | |||
[[Arquivo:CoverSample-CO-15001.png|miniaturadaimagem|200px|Coberturas base e ''overlay'' sobre Tunja ([https://osm.codes/CO-15001 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 de reserva, caso tenha alguma mudança futura 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. | |||
Podemos imaginar que 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. Na prática, a grade da base32 reusa um [[osmc:Convenções/Grade_científica_multifinalitária#Grades_degeneradas_de_nível_meio|subconjunto da grade científica]] (base2). | |||
[[Arquivo:GGeohash-niveis-base32.png|center|780px]] | |||
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. | |||
<!-- | |||
[[Arquivo:Osmc-Tunja-gredeLogisticaInicial.png|centro|miniaturadaimagem|500px|Grade de cobertura de Tunja com geocódigo logístico de 2 dígitos na área reral e 1 dígito na urbana, onde foram definidas células de ''overlay''.]] | |||
--> | |||
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 | |||
==Seletores de SRID e jurisdição== | |||
[[Arquivo:DNGS-BBOXes-exemplo2.png|thumb|380px|"Globo DNGS" quando apenas Brasil e Colômbia adotavam o padrão. | |||
A BBOX original de cada país é decomposta em BBOXes "puras" e "de fronteira". As puras permitem rápida decisão (alta performance), enquanto as de fronteira, ''border boxes'' em rosa, requerem avaliação de pertinência ao polígono de fronteira.]] | |||
A metodologia descrita foi inicialmente adotada para o Brasil, mas em seguida outros países solicitaram adotar ou testar o padrão DNGS. Uma metodologia de seleção foi implantada, para se distinguir e selecionar a grade nacional correta a cada ponto do globo — e seu complemento, a ausência de grade DNGS no restante do globo. | |||
Ela é descrita no padrão DNGS como [[Discrete_National_Grid_Systems/pt#Seletor_de_jurisdição|algoritmo seletor de jurisdição]], e adotada apenas nos ''"raros casos de validação ou onde o usuário ou a interface não sabem em que país estão"''. | |||
O algoritmo decide, para um ponto Latitude-Longitude, qual ''jurisdição nacional'' usar. Ao lado foi ilustrada a decomposição do "globo DNGS" quando analisando apenas Brasil e Colômbia. A verificação de BBOX tem alta performance. O algoritmo consumirá um pouco mais de CPU apenas quando for BBOX de fronteira, onde vai disparar a verificação do polígono local de fronteira. | |||
==Ver também== | |||
* Detalhamento técnico da metodologia em [[osmc:Metodologia/Algoritmo SQL]] | |||
*Convenções AFAcodes: | |||
**[[osmc:Convenções/Grade científica multifinalitária]] | |||
**[[osmc:Convenções/Coberturas municipais]] ([[osmc:Viz/Navega%C3%A7%C3%A3o|vizualizar]]) | |||
*[[Código Natural]]: | |||
**[[Código natural/Notação posicional]] | |||
**[[Código natural/Representação interna]] | |||
*[[Generalized Geohash/pt]] |
Edição atual tal como às 22h13min de 1 de julho de 2024
![]() Documentação integrante do projeto AFA.codes |
Países: BR, CO, EC, UY. |
Afa vs Plus, DNGS, ... |
A metodologia e algoritmos do sistema AFA.codes
seguem em parte um padrão e em parte as decisões soberanas do país.
O sistema AFAcodes implementou a metodologia sugerida pelo padrão DNGS, semelhante ao padrão ISO DGGS, particionando uma superfície com grandes células de igual-área.
A diferença da metodologia DNGS para a DGGS é que a superfície DNGS é um território nacional, ao invés do globo inteiro. O padrão DNGS é também mais restritivo, demandando projeção (oficial nacional), geocódigos, tamanhos e formatos de células válidos (quadriláteros em potências de 2) e um limite na quantidade de células iniciais (até 16).
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 limites marítimos e arquipélagos, conforme decisão soberana do país.
Conforme a 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), onde será desenhado um mosaico de no máximo 16 quadrados. O encaixe é obtido por um algoritmo de varredura, testa-se com grades maiores e menores, sobre a BBOX dos polígonos territoriais.
Escolha oficial da origem
PS: as outras alternativas (ex. sem parte insular nem zona econômica), descartadas, foram documentadas.
Conforme previsto na metodologia DNGS para escolha das coordenadas de referência, um ajuste fino da posição da cobertura nacional é necessário para se estabelecer em definitivo o sistema de coordenadas e, consequentemente, os identificadores de célula.
Apesar de ser uma escolha objetiva, baseada no simples encaixe nos limites oficiais, a escolha desses limites requer decisões soberanas, tais como escolha do buffer de segurança, e decisões sobre uso ou não de limites marítimos.
Decisões sobre ajuste e desmembramento
O algoritmo de escolha das células L0 é relativamente simples, resulta da interseção do polígono com a grade: se o número de células exceder a 16, será utilizada uma grade de nível mais grosseiro.
Por ser uma decisão definitiva e com grande impacto na posterior usabilidade da grade, é uma decisão delicada, requer "ajuste humano", e portanto decisões adicionais. Principais exemplos de causa e ajuste: erros implícitos nas delimitações territoriais, importância das delimitações (divisor oceânico vs divisor territorial), decisões por reserva (maior em territórios disputados) e descontinuidades, tais como as ilhas do Havaí no polígono territorial dos EUA, que requerem inclusive uma projeção diferente.
Uma das soluções técnicas para garantir a cobertura nacional em 16 células L0 é o desmembramento, ilustrado para o caso do Brasil. O algoritmo de cobertura requer mínimo de ~30% de taxa de ocupação territorial sobre a célula de cobertura. As células com "grandes vazios" são candidatas ao desmembramento para que seus geocódigos possam ser reutilizados em porções desconexas, tipicamente as insulares (ilustração).
Indexação L0
Em seguida os 16 quadrados recebem indexadores (rótulos) arbitrários no lugar de coordenadas ji. Todavia, a formação da grade, conforme veremos a seguir, exige a escolha de uma curva de preenchimento.
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.
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é.- o primeiro dígito desse sufixo de grade é, a rigor, ainda parte do nome. O dígito surge com a detecção do território municipal. Por exemplo
CO-Tunja~G
, conforme veremos, tem o primeiro dígito "G" definido junto com o nome.
- o primeiro dígito desse sufixo de grade é, a rigor, ainda parte do nome. O dígito surge com a detecção do território municipal. Por exemplo
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 de reserva, caso tenha alguma mudança futura 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.
Podemos imaginar que 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. Na prática, a grade da base32 reusa um subconjunto da grade científica (base2).
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
Seletores de SRID e jurisdição
A metodologia descrita foi inicialmente adotada para o Brasil, mas em seguida outros países solicitaram adotar ou testar o padrão DNGS. Uma metodologia de seleção foi implantada, para se distinguir e selecionar a grade nacional correta a cada ponto do globo — e seu complemento, a ausência de grade DNGS no restante do globo.
Ela é descrita no padrão DNGS como algoritmo seletor de jurisdição, e adotada apenas nos "raros casos de validação ou onde o usuário ou a interface não sabem em que país estão".
O algoritmo decide, para um ponto Latitude-Longitude, qual jurisdição nacional usar. Ao lado foi ilustrada a decomposição do "globo DNGS" quando analisando apenas Brasil e Colômbia. A verificação de BBOX tem alta performance. O algoritmo consumirá um pouco mais de CPU apenas quando for BBOX de fronteira, onde vai disparar a verificação do polígono local de fronteira.
Ver também
- Detalhamento técnico da metodologia em osmc:Metodologia/Algoritmo SQL
- Convenções AFAcodes:
- Código Natural:
- Generalized Geohash/pt