Oi gente, desculpe se o texto de apresentação ficou extenso… Era mais, enxuguei trazendo uma parte para cá, como resposta/discussão de um dos temas colocados.
Nome feio tem solução
A Grade Estatística já é um padrão consolidado e em uso, e será de grande importância para o Censo de 2021. Na versão vigente da Grade não se mexe mais, até pelo menos 2022… Então, para chegarmos em 2022 com uma proposta convincente, o ideal é começar revisando os modelos que deram origem ao padrão IBGE.
Origem da feiura dos nomes de célula na grade IBGE
A equipe que desenvolveu a Grade Estatística no IBGE, em ~2015, adotou um padrão de referência europeu de ~2010, o INSPIRE. Infelizmente, e sem trocadilhos, foi uma inspiração ruim quanto ao geocódigo, não melhorou nem com a revisão de 2014, que resultou no INSPIRE D2.8.I.2 v3.1.
O que parece ter acontecido rentemente é um movimento de revisão do INSPIRE D2.8.I.2, como podemos verificar neste documento de 2019, “GSGF Europe -Implementation guide for the Global Statistical Geospatial Framework in Europe”. Ao que tudo indica haverão modificações, podendo até incorporar o conceito de DGGS da OGC, definido pelo padrão “Topic 21: Discrete Global Grid Systems abstract specification”, de 2017.
Alternativas para embelezar
Como foi sugerido na apresentação do tema, o Geohash seria uma ótima alternativa em termos de “geocódigo bonito”. Mas um dos requisitos fundamentais da Grade Estatística, é que as células de grade (de um mesmo nível hierárquico L) tenham todos a mesma área. Com Geohash isso não ocorre, e haveriam distorções ao compararmos células do Pará com células do Paraná.
Na ilustração abaixo podemos notar que o Geohash 6gk sobre Curitiba é ligeiramente mais fino do que o 6z6, sobre Altamira. Medindo são 24459 km² no norte e 22022 km² no sul, a diferença de 2437 km² representa mais que 10%.
O PlusCodes da Google é baseado no OLC, que por sua vez é muito parecido com o Geohash, a ponto de padecer do mesmo problema. Não existem muitos outros padrões abertos “decentes”, o mais promissor o sistema S2 Geometry, que garante células de área quase constante, mas não tanto quanto o IBGE vigente, além de perder totalmente a compatibilidade com ele.
Se for para radicalizar, perder 100% da compatibilidade com a grade brasileira viente, o ideal é buscar algo que satisfaça os requisitos de DGGS. Pode-se usar o projeto DGGRID ou o já bem avançado sistema H3geo da Uber.
Células de mesma área
A grade IBGE é perfeita para aplicações estatísticas pois todas as células da grade possuem mesma área. O Geohash, como demonstrado, não satisfaz os critérios de equivalência de área exigidos por aplicações estatísticas.
Bom lembrar que, quando visualizamos lotes, quadras e ruas nos mapinhas da Web (OpenStreetMap, BING, Google-Maps, etc.) a visualização privilegia a preservação dos ângulos desses objetos, e não muito as suas áreas. Na visualização Web as latitudes e longitudes dos dados são transformadas através da projeção cartográfica Web Mercator. A Grade IBGE foi obtida com Projeção Albers, a mágica que garante a equivalência de área.
Por isso na visualização da Grade IBGE também podem haver pequenas distorções, ou seja, os quadradinhos dela podem não parecer perfeitamente quadrados na visualização Web.
Bom, voltando… E se modificarmos o algoritmo do Geohash para usar ao invés da latitude/longitude direto, usar as coordenadas obtidas da projeção Albers?
Certo, a solução do problema é simples assim!
Felizmente é possível, basta adaptar o algoritmo principal Geohash, que é a indexação das células pela curva de Morton, submeter a essa indexação as coordenadas obtidas projeção Albers.
Em termos técnicos, num contexto SIG (Sistemas de Informação Geográfica), a projeção Albers brasileira fica definida pela sua “Proj.4 string”
+proj=aea +lat_0=-12 +lon_0=-54 +lat_1=-2 +lat_2=-22 +x_0=5000000 +y_0=10000000 +ellps=GRS80 +units=m +no_defs
Proposta da nova Grade Estatística
Na Grade vigente, limitada a 7 níveis hierárquicos, cada célula de nível L é refinada em 25 células do nível L+1. Com a adoção do algoritmo Geohash adaptado, cada célula de nível L será refinada em 4 células do nível L+1. Haverão muito mais níveis, mas, como não existem muitos múltiplos comuns para 4 e 25, poucos níveis serão compatíveis em tamanho de célula. O primeira decisão é sobre qual será o nível compatível.
Nesta proposta de nova grade, agora que mantivemos a compatibilidade com a projeção Albers, a sugestão que é que se adote um nível onde a célula tenha 1 km² , alinhando com o nível L6 da grade vigente.
Conforme a apresentação do tema no inicio da página, se fosse o Brasil, necessitaria de uma caixa L0 com lado de h0 ≥ ~5000 km. Utilizando o menor valor de h0 possível para se encaixar perfeitamente as grades nova e vigente de 1 km, a nova grade teria os seguintes níveis:
| lado (m) | nível L ref. | L adotado |
|---|---|---|
| … | … | … |
| 512 km | 4 | 0 |
| 256 km | 5 | 1 |
| 128 km | 6 | 2 |
| … | … | … |
| 4 km | 11 | 7 |
| 2 km | 12 | 8 |
| 1 km | 13 | 9 |
| 500 m | 14 | 10 |
| 250 m | 15 | 11 |
| 125 m | 16 | 12 |
| 62,5 m | 17 | 13 |
| … | … | … |
Reparar que o 512 é próximo de 500… As células de 512 km de lado, da nova grade, podem ser relacionadas ao padrão IBGE vigente de 500 km (diferem em apenas 2%). Aproveitando esse quase-alinhamento podemos manter uma certa compatibilidade com a convenção do IBGE de iniciar por uma cobertura de 56 células (da “ID_04” mais ao sul até a “ID_93” mais ao norte).
Então o nível zero da hierarquia passa a ser cada uma dessas células previamente identificadas:
As células de cada novo nível hierárquico são indexadas conforme a Curva de Morton (também chamada “Curva Z” como se percebe no L1 ilustrado), de forma que não há limite para o número de níveis de refinamento. Para compactar a representação numérica usamos a uma variação da base 16, apelidada de base 16h, que preserva a hierarquia.
Agora as partições preservam o nome da célula-mãe. Pela ilustração percebe-se foi concatenado dígito de número ou letra para distinguir da mãe: níveis pares acrescentam dígitos da base 16 tradicional, níveis ímpares e “níveis meio” acrescentam letras da base 16h.
Na nova grade, no nível L12 com células de 125 m de lado, teríamos um geocódigo hierárquico de 9 dígitos, menor que os 15 caracteres do padrão vigente para células até maiores, de 200 m.
A nova grade, tal como Geohash, também poderia fazer uso de níveis hierárquicos intermediários, permitindo uma gradação de geocódigos ainda mais flexível, resultando num total de 24 níveis se pararmos no nível L12.
Para aplicações estatísticas e de visualização de dados, todo esse esquema de representação orientado à base 16 é razoável e oferece a flexibilidade necessária.
Em aplicações como a do CEP (localizar endereços postais), para que o código seja mais compacto (menos dígitos), adota-se a base 32. Estima-se que com 9 ou 10 dígitos teríamos uma resolução de ~5 metros, melhor portanto que o PlusCodes de 11 dígitos.
Este foi um resumo dos resultados da análise e de alguns testes práticos, realizados em 2019 por um pequeno grupo de membros da Comunidade OpenStreetMap Brasil, do qual faço parte. Estamos abertos a discussões e colaborações.



