osmc:Convenções/Identificadores inteligentes: mudanças entre as edições

De Documentação
Sem resumo de edição
m (→‎ID de via: centroide como opcao default)
 
(17 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
Identificadores inteligentes, de vias, lotes, etc. possuem as seguintes características:
'''Identificadores geográficos inteligentes''' ('''ID''' inteligente), de vias, lotes, etc. possuem as seguintes características:


* '''Auto-confirmável''': dado o ID o usuário consegue confirmar no mapa a sua veracidade.
* do ''ID público'', na sua representação para humanos, em expressão textual:
* '''Independentes de autoridade central''': qualquer um, conhecendo o algoritmo e o objeto, pode gerar o identificador do objeto.
** '''Legível''' ao humano,  otimizada para ser '''o mais curto possível'''.  
* Oferece '''expressões interna e humana otimizadas''': no banco de dados, como inteiro de 64 bits, otimizado para buscas e demais operações; e na tela ou interface, como texto legível ao humano; otimizado para ser curto e hierárquico.
** '''Preservando hierarquia''', permitindo a contextualização e encurtamento por prefixo.  
** '''Compatível''' com formatos [https://www.w3.org/TR/did-core/ W3C '''DID'''] e/ou [[wikipedia:URN|URN]].


A metodologia AFA está intimamente ligada ao protocolo [[Geo URI estendida]]. Outros elementos da metodologia:
* do ID na sua ''representação interna'' em bancos de dados:
** '''Auto-confirmável''': dado apenas o ID, consegue-se confirmar ''offline'', no mapa, a sua localização geográfica.
** '''Inteiro positivo de 64 bits''', preservando hierarquia e otimizado para buscas e demais operações.


* deslocamentos (de posicionamento do vetor no OSM ou concretos da via real) requerem o uso de "''alias''" da antiga posição para a nova posição, na API de resolução da via.
* da resolução do ID:
** '''Atualidade e rastreabilidade''': a resolução ''online'' do ID permite que seu histórico seja conhecido em tempo de consulta, idealmente com devidas atualizações.
** ID '''compatível''' com as diretivas básicas de interoperabilidade do [https://www.w3.org/TR/did-core/ W3C '''DID'''].
*** '''Gerador independente de autoridade central''': qualquer um, conhecendo o algoritmo e o objeto geográfico a ser identificado, pode gerar um ID do objeto.
** Metadados públicos '''em conformidade com a legislação local do escopo LADM''', ou seja, vigente na jurisdição georeferenciada pelo ID, no escopo caracterizado pela [https://www.iso.org/standard/51206.html ISO LADM].
** '''Transparente''': o banco de dados mais atual é também disponível ao público em formato aberto e estruturado, por exemplo em repositório ''git'' aberto, com licença da família CC0.


* os ID público oficial e nomes (oficial e praticado) são associados depois.
Na '''metodologia AFA''' (orientada a ''[[#Geo-tokens]]'') a tecnologia do ID inteligente está intimamente ligado ao protocolo [[Geo URI estendida]]. Outros elementos da metodologia:


* a primeira associação é do ID inteligente com o ID OSM do objeto, depois a partir do OSM obtém-se o ID público oficial e nomes. <!-- A correspondência entre Wikidata e OSM em caso de via relevante (ex. [http://wikidata.org/entity/Q41068 Q41068 para avenida Paulista] ou [http://wikidata.org/entity/Q2739838 Q2739838 para BR-116]). -->
* Deslocamentos (de posicionamento do vetor no OSM ou concretos da via real) requerem o uso de "''alias''" da antiga posição para a nova posição, na API de resolução da via.


* Tecnologia para representação interna dos identificadores conforme [[Código natural/Representação interna]]. <!-- (que habilita a [[Código natural/Identificação taxonômica|identificação taxonômica otimizada]]. -->
* Os ID público oficial e nomes (oficial e praticado) são associados depois.
 
* A primeira associação é do ID inteligente com o ID OSM do objeto, depois a partir do OSM obtém-se o ID público oficial e nomes. <!-- A correspondência entre Wikidata e OSM em caso de via relevante (ex. [http://wikidata.org/entity/Q41068 Q41068 para avenida Paulista] ou [http://wikidata.org/entity/Q2739838 Q2739838 para BR-116]). -->
 
* Tecnologia para representação interna dos identificadores conforme ''[[Código natural/Representação interna]] com reserva de indicador de contagem''.<br/>PS: a reserva existe para o caso de ID sem significado espacial, ele inicia sempre com mesmo valor de célula-mãe e sufixo é um contador global. <!-- (que habilita a [[Código natural/Identificação taxonômica|identificação taxonômica otimizada]]. -->


== Protocolo de resolução de IDs de objetos ==
== Protocolo de resolução de IDs de objetos ==


Internamente, no banco de dados, os identificadores são inteiros de 64 bits conforme [[Código natural/Representação interna]].
Internamente, no banco de dados, os identificadores são inteiros de 64 bits conforme descritos em [[Código natural/Representação interna]].


A [[Geo URI estendida]] (e a  [[wikipedia:URN|URN]]) pode ser estendida para incorporar IDs inteligentes na resolução do servidor AFA:  
A [[Geo URI estendida]] (e a  [[wikipedia:URN|URN]]) pode ser estendida para incorporar IDs inteligentes na resolução do servidor AFA, todos em escopo LADM:  


* <code><nowiki>geo:id_via:{ID}</nowiki></code> Resolve o identificador público de ''via'' (estrada, rua, etc.)
* <code><nowiki>geo:id_via:{ID}</nowiki></code> Resolve o identificador público de ''via'' (estrada, rua, etc.)
* <code><nowiki>geo:id_lot:{ID}</nowiki></code> Resolve o identificador público de ''lot'' (lote, gleba, parcela, etc.)
* <code><nowiki>geo:id_lot:{ID}</nowiki></code> Resolve o identificador público de ''lot'' (lote, gleba, parcela, etc.)


* <code><nowiki>geo:id_poa:{ID}</nowiki></code> Resolve o identificador público ''Point of Address'' (endereço de porta, de medidor, etc.)
* <code><nowiki>geo:id_poa:{ID}</nowiki></code> Resolve o identificador público ''Point of Address'' (endereço de porta, de medidor, etc.), teoricamente associado a lote.
* <code><nowiki>geo:id_poi:{ID}</nowiki></code> Resolve o identificador público ''Point of Interest'' (ponto de poste, referência geodésica, etc.)
* <code><nowiki>geo:id_poi:{ID}</nowiki></code> Resolve o identificador público ''Point of Interest'' (ponto de poste, referência geodésica, etc.), fora ou sem compromisso com lote.
* <code><nowiki>geo:id_water:{ID}</nowiki></code> Resolve o identificador público de ''corpo d'água'' (lago, rio, riacho,  etc.)
* <code><nowiki>geo:id_water:{ID}</nowiki></code> Resolve o identificador público de ''corpo d'água'' (lago, rio, riacho,  etc.)


Nos ''URI templates'' o valor de ID é um AFAcode. Por exemplo <code><nowiki>geo:id_via:BR-SP-PIR-42BKG</nowiki></code> identifica uma estrada que contém o ponto [https://afa.codes/BR-SP-Piracicaba~42BKG8 geo:BR-SP-Piracicaba~42BKG8]. <br>Exceção é o PoA-contador, que faz uso internamente do [[Código_natural/Representação_interna#hCount|tipo <code>hCount56_8</code>]], que requer a representação diferenciada. São duas partes, a localização geográfica e o contador de 8 bits. Por exemplo o "endereço  5 do lote <code>BR-SP-Piracicaba~42B4Y</code>" será representado como <code>BR-SP-Piracicaba~42B4Y_5</code>. <br/>PS: PoA e PoI são equivalentes quando o PoA não faz uso de contador.
Nos ''URI templates'' acima o valor de ID é um AFAcode. Por exemplo <code><nowiki>geo:id_via:BR-SP-PIR-42BKG</nowiki></code> identifica uma estrada que contém o ponto [https://afa.codes/BR-SP-Piracicaba~42BKG8 geo:BR-SP-Piracicaba~42BKG8]. <br>Exceção é o PoA-contador, que faz uso internamente do [[Código_natural/Representação_interna#hCount|tipo <code>hCount56_8</code>]], que requer a representação diferenciada. São duas partes, a localização geográfica e o contador de 8 bits. Por exemplo o "endereço  5 do lote <code>BR-SP-Piracicaba~42B4Y</code>" será representado como <code>BR-SP-Piracicaba~42B4Y_5</code>. <br/>PS: PoA e PoI são equivalentes quando o PoA não faz uso de contador.


Se a via sofrer um deslocamento de 5 metros para a direita, resultando em novo código 42BKGB, o identificador público 42BKG será mantido, mas um ''alias'' será gerado do  42BKG8 para o 42BKGB.
Se a via sofrer um deslocamento de 5 metros para a direita, resultando em novo código 42BKGB, o identificador público 42BKG será mantido, mas um ''alias'' será gerado do  42BKG8 para o 42BKGB.
Linha 37: Linha 49:


==ID de via==
==ID de via==
O ID de via pode ser apenas interno ao banco de dados, para controle de segmentos sem compromisso com o controle OSM.
O ID de via pode ser público ou apenas interno ao banco de dados &mdash; para controle de segmentos sem compromisso com o controle OSM.


No caso de '''vias rurais''', entretanto, é importante que seja legível ao humano, pois vias carecem de identificação pública consensual. Seria uma forma "oficial temporária" para se identificar as vias em seu contexto".
No caso de '''vias rurais''', entretanto, é importante que seja legível ao humano, pois vias carecem de identificação pública consensual. Seria uma forma "oficial temporária" para se identificar as vias em seu contexto".
Linha 44: Linha 56:


# Confirmar por algoritmo topologico e rótulos OSM quais os segmentos que compõe a via. Se for descontínua (ex. rua quebrada por uma praça) pode receber dois IDs, um para cada parte contínua. <br/>PS: avaliar se vale criar ''relations'' para unir segmentos dispersos no OSM. As rotas (ex. BR-116) não devem ser confundidas com vias e seu nome/administração dentro do município.  
# Confirmar por algoritmo topologico e rótulos OSM quais os segmentos que compõe a via. Se for descontínua (ex. rua quebrada por uma praça) pode receber dois IDs, um para cada parte contínua. <br/>PS: avaliar se vale criar ''relations'' para unir segmentos dispersos no OSM. As rotas (ex. BR-116) não devem ser confundidas com vias e seu nome/administração dentro do município.  
# Escolher um ponto sobre a via como referência de ponto único, mais central e livre de cruzamentos. De preferência com alguma referência geográfica.
# Escolher um ponto sobre a via como referência de ponto único, mais central e livre de cruzamentos. <br/> Pode ser o centroide em determinada data ([https://postgis.net/docs/ST_PointOnSurface.html ST_PointOnSurface]) ou, de preferência, ponto com alguma referência geográfica (ex. Igreja).
# Obter o AFAcode desse ponto
# Obter o AFAcode desse ponto
# Entre as diversas vias assim identificadas, estabelecer o número de dígitos mínimos para que sejam distintas no escopo do município.
# Entre as diversas vias assim identificadas, estabelecer o número de dígitos mínimos para que sejam distintas no escopo do município.
Linha 93: Linha 105:


Outras situações, vão '''depender da legislação da jurisdição''':
Outras situações, vão '''depender da legislação da jurisdição''':
* '''Desmembramento''' (desdobro) de gleba ou lote:  
* '''Desmembramento''' (desdobro) de gleba ou lote:  
** [''se regra herança''] a parte que ficou com o centroide do ID herda o ID, a outra será submetida ao algoritmo de batismo.
** [''se regra herança''] a parte que ficou com o centroide do ID herda o ID, a outra será submetida ao algoritmo de batismo.
** [''se regra 2 novos IDs''] as partes são submetidas a novo ID.
** [''se regra 2 novos IDs''] cada uma das partes é submetida a um novo ID.
 
* '''União''' (fusão/englobamento) de lotes:  
* '''União''' (fusão/englobamento) de lotes:  
** [''se regra herança''] preserva-se o de maior área, ou, em caso de áreas iguais, o de ID mais baixo.
** [''se regra herança''] preserva-se o de maior área, ou, em caso de áreas iguais, o de ID mais baixo.
** [''se regra 2 novos IDs''] o resultado é submetido a novo ID, com o cuidado de não repetir nenhum dos anteriores. Matematicamente sempre é possível ao maior ter menos dígitos.
** [''se regra novo ID''] o resultado é submetido a um novo ID, com o cuidado de não repetir nenhum dos anteriores. Matematicamente sempre é possível ao maior ter menos dígitos.
 
* '''Deslocamento''' de lote: seja por falha no mapeamento (ex. revisão de divisas) ou natural (ex. terremoto), o ID pode ser mantido se ainda tiver seu centroide e 75% (ou mais) de sua área dentro do lote revisado. Há que se estudar o impacto disso, mas ideal rebatizar com resolução maior para manter-se como célula interior. <br/>Caso o centroide caia fora porém com mais um dígito caia dentro, vale avaliar política de cadastro que aceite essa mudança de precisão.
* '''Deslocamento''' de lote: seja por falha no mapeamento (ex. revisão de divisas) ou natural (ex. terremoto), o ID pode ser mantido se ainda tiver seu centroide e 75% (ou mais) de sua área dentro do lote revisado. Há que se estudar o impacto disso, mas ideal rebatizar com resolução maior para manter-se como célula interior. <br/>Caso o centroide caia fora porém com mais um dígito caia dentro, vale avaliar política de cadastro que aceite essa mudança de precisão.


Linha 109: Linha 124:


* [[osmc:Convenções/Identificadores inteligentes/de lote no Brasil|Brasil]]
* [[osmc:Convenções/Identificadores inteligentes/de lote no Brasil|Brasil]]
* [[osmc:Convenções/Identificadores inteligentes/de lote na Colômbia|Colômbia]]
* ...
* ...


Linha 116: Linha 132:
Existem duas situações para o batismo do endereço com seu ID:
Existem duas situações para o batismo do endereço com seu ID:


# Quando são exigidos previamente os lotes dos endereços: o identificador de lote é usado como referência, e os '''endereços são contadores dentro do lote'''. Isso dá liberdade para se reposicionar pontos de endereço, por exemplo para as proximidades da rua.
# Quando os lotes são desconhecidos ou um ID posicional é exigido: os '''endereços são pontos exatos'''. Há o risco de se mover os pontos, por exemplo para mais próximos da via (testada de lote). Nesse caso o ID-velho é associado ao ID-novo (alias para o canônico), de forma transparente para o usuário. É suposto que antigo e novo são pontos sobre o mesmo lote.
# Quando os lotes são desconhecidos ou um ID posicional é exigido: os endereços são pontos exatos. Há o risco de se mover os pontos, por exemplo para mais próximos da via (testada de lote). Nesse caso o ID é
# Quando são exigidos previamente os lotes dos endereços: o identificador de lote é usado como referência, e os '''endereços são contadores dentro do lote'''. Isso dá liberdade para se reposicionar pontos de endereço, por exemplo para as proximidades da rua.
 
A situação-1 é recomendada no caso de meio urbano.


==ID de rio==
==ID de rio==
Linha 125: Linha 139:


...
...
Brasil:
* ANA já classificou todos os trechos de rios com código de ottobacias ([https://metadados.snirh.gov.br/geonetwork/srv/search?keyword=Ottocodifica%C3%A7%C3%A3o ottocodificação])
* ...
== Geo-tokens ==
IDs podem ser resolvidos através de "aliases", apontando para ID espacializado, tipicamente um  [[GGeohash]].
=== Solução para pre-espacialização ===
NFTs tradicionalmente são hashes, mas no caso de [[GGeohash|GGeohashes]], que não é um hash criptográfico nem de encapsulamento de metadados genéricos, surge a dicotomia entre usar ou não a espacialização, ou usar ou não um ID espacial ainda não oficialmente legitimado.
Questão ténica. Para evitar necessidade de mudança na representação interna usual do AFAcodes, são eleitos "quadrantes impossíveis" (por exemplo fora do território nacional) para serem referência de zero na contagem hierárquica ou classificador de referência para uso dos demais bits como contadores.
Ver também requisitos gerais dos IDs e seus protocolos em https://www.w3.org/TR/did-use-cases/#authenticate


== Ligações externas ==
== Ligações externas ==


* [https://www.normasbrasil.com.br/norma/portaria-511-2009_217279.html Portaria MCid nº 511 de 07/12/2009], diretrizes para a criação, instituição e atualização do Cadastro Territorial Multifinalitário (CTM) nos municípios brasileiros.
* ...
* [https://www.planalto.gov.br/ccivil_03/leis/leis_2001/l10267.htm Lei nº 10.267, de 28 de agosto de 2001] (Lei de Georreferenciamento)
* Vídeos:
** [https://www.youtube.com/watch?v=aBGZ7BTj9oQ Cadastro Territorial Multifinalitário: Estruturação e Relações Institucionais - LincolnLandPolicy] (YouTube)
** [https://www.youtube.com/watch?v=tI3FWJmXc_I Curso Curso Cadastro Técnico Multifinalitário (CTM) - Módulo 01 - Capítulo 01] (YouTube), aborda questões sobre retificação de área, desmembramento e fusão.

Edição atual tal como às 11h32min de 24 de janeiro de 2024

Identificadores geográficos inteligentes (ID inteligente), de vias, lotes, etc. possuem as seguintes características:

  • do ID público, na sua representação para humanos, em expressão textual:
    • Legível ao humano, otimizada para ser o mais curto possível.
    • Preservando hierarquia, permitindo a contextualização e encurtamento por prefixo.
    • Compatível com formatos W3C DID e/ou URN.
  • do ID na sua representação interna em bancos de dados:
    • Auto-confirmável: dado apenas o ID, consegue-se confirmar offline, no mapa, a sua localização geográfica.
    • Inteiro positivo de 64 bits, preservando hierarquia e otimizado para buscas e demais operações.
  • da resolução do ID:
    • Atualidade e rastreabilidade: a resolução online do ID permite que seu histórico seja conhecido em tempo de consulta, idealmente com devidas atualizações.
    • ID compatível com as diretivas básicas de interoperabilidade do W3C DID.
      • Gerador independente de autoridade central: qualquer um, conhecendo o algoritmo e o objeto geográfico a ser identificado, pode gerar um ID do objeto.
    • Metadados públicos em conformidade com a legislação local do escopo LADM, ou seja, vigente na jurisdição georeferenciada pelo ID, no escopo caracterizado pela ISO LADM.
    • Transparente: o banco de dados mais atual é também disponível ao público em formato aberto e estruturado, por exemplo em repositório git aberto, com licença da família CC0.

Na metodologia AFA (orientada a #Geo-tokens) a tecnologia do ID inteligente está intimamente ligado ao protocolo Geo URI estendida. Outros elementos da metodologia:

  • Deslocamentos (de posicionamento do vetor no OSM ou concretos da via real) requerem o uso de "alias" da antiga posição para a nova posição, na API de resolução da via.
  • Os ID público oficial e nomes (oficial e praticado) são associados depois.
  • A primeira associação é do ID inteligente com o ID OSM do objeto, depois a partir do OSM obtém-se o ID público oficial e nomes.
  • Tecnologia para representação interna dos identificadores conforme Código natural/Representação interna com reserva de indicador de contagem.
    PS: a reserva existe para o caso de ID sem significado espacial, ele inicia sempre com mesmo valor de célula-mãe e sufixo é um contador global.

Protocolo de resolução de IDs de objetos

Internamente, no banco de dados, os identificadores são inteiros de 64 bits conforme descritos em Código natural/Representação interna.

A Geo URI estendida (e a URN) pode ser estendida para incorporar IDs inteligentes na resolução do servidor AFA, todos em escopo LADM:

  • geo:id_via:{ID} Resolve o identificador público de via (estrada, rua, etc.)
  • geo:id_lot:{ID} Resolve o identificador público de lot (lote, gleba, parcela, etc.)
  • geo:id_poa:{ID} Resolve o identificador público Point of Address (endereço de porta, de medidor, etc.), teoricamente associado a lote.
  • geo:id_poi:{ID} Resolve o identificador público Point of Interest (ponto de poste, referência geodésica, etc.), fora ou sem compromisso com lote.
  • geo:id_water:{ID} Resolve o identificador público de corpo d'água (lago, rio, riacho, etc.)

Nos URI templates acima o valor de ID é um AFAcode. Por exemplo geo:id_via:BR-SP-PIR-42BKG identifica uma estrada que contém o ponto geo:BR-SP-Piracicaba~42BKG8.
Exceção é o PoA-contador, que faz uso internamente do tipo hCount56_8, que requer a representação diferenciada. São duas partes, a localização geográfica e o contador de 8 bits. Por exemplo o "endereço 5 do lote BR-SP-Piracicaba~42B4Y" será representado como BR-SP-Piracicaba~42B4Y_5.
PS: PoA e PoI são equivalentes quando o PoA não faz uso de contador.

Se a via sofrer um deslocamento de 5 metros para a direita, resultando em novo código 42BKGB, o identificador público 42BKG será mantido, mas um alias será gerado do 42BKG8 para o 42BKGB.

Cabe ao banco de dados da API (expresso publicamente como planilhas CSV) registrar o valor vigente e sua associação com o antigo. A API resolve o alias.

Cabe o gestor do CSV realizar o controle de qualidade: Deslocamentos pequenos, da ordem de metro, não afetam o ID. Deslocamentos grandes (maiores que 10 metros) requerem revisão mais profunda dos endereços, lotes, etc. Havendo gestão pode-se garantir que o sistema como um todo é estável.

ID de via

O ID de via pode ser público ou apenas interno ao banco de dados — para controle de segmentos sem compromisso com o controle OSM.

No caso de vias rurais, entretanto, é importante que seja legível ao humano, pois vias carecem de identificação pública consensual. Seria uma forma "oficial temporária" para se identificar as vias em seu contexto".

Passo a passo para se identificar uma via através de seus atributos de localização:

  1. Confirmar por algoritmo topologico e rótulos OSM quais os segmentos que compõe a via. Se for descontínua (ex. rua quebrada por uma praça) pode receber dois IDs, um para cada parte contínua.
    PS: avaliar se vale criar relations para unir segmentos dispersos no OSM. As rotas (ex. BR-116) não devem ser confundidas com vias e seu nome/administração dentro do município.
  2. Escolher um ponto sobre a via como referência de ponto único, mais central e livre de cruzamentos.
    Pode ser o centroide em determinada data (ST_PointOnSurface) ou, de preferência, ponto com alguma referência geográfica (ex. Igreja).
  3. Obter o AFAcode desse ponto
  4. Entre as diversas vias assim identificadas, estabelecer o número de dígitos mínimos para que sejam distintas no escopo do município.

Exemplo: no ponto sobre via, BR-SP-SaoPaulo~28338U e suas vizinhanças (Marsilac).

IdVia-ex1-marsilac.png
  • Passos 1 e 2: 28338U, 2832FR (F. Belmonte), 283260Y (sobre a ponte), 281QZBC (Carvoeiro), 2832PBP, 2839LZG (travessa M.M.Araújo)
  • Passo 3: 28338, 2832F, 28326, 281QZ, 2832P, 2839L;
    ou 2833, 2832F, 28326, 281Q, 2832P, 2839.
    (em Geo URI geo:idvia:BR-SP-SPA-28338, geo:idvia:BR-SP-SPA-2832F, etc.)

Ou seja, com código do município mais 25 bits (5 dígitos) conseguimos definir identificadores de via rural que levam a um ponto dentro da via.

PS1: pode-se reiniciar a escolha de pontos quando muito próximos entre si, gerando códigos muito longos.

IdVia-ex2-marsilac.png


Por exemplo as células 28380 e 281RZ estão sobre a mesma via, porém apresentam prefixos mais distintos, descartamos 281RZ por ser parecido com o pequeno vizinho 281RX. Vias curtas possuem preferência por terem menos opções.

PS2: depois da escolha do número de dígitos, pode-se recorrer à "estabilidade", conferindo as células que cobrem maior extensão de via, e descartando aquelas com extensão muito baixa.

PS3: reparar que o ID interno pode ser mais preciso (tipicamente 5m) do que o ID público, para reduzir o risco de ambiguidade futura, ao acrescentarem-se vias vizinhas. Há um balanço entre discernimento (distinguir das vias vizinhas) e estabilidade (a via pode ser editada e mudar ligeiramente de posição).


Questões da dinâmica do crescimento urbano:

  • o segmento utilizado no batismo pode vir a ser abandonado (trecho de via sem manutenção), demandando refazer a identificação em caso de ambiguidade com vizinhança.
  • um mesmo segmento de via pode vir a ser particionado por nomes oficiais distintos. Nesse caso o ID existente fica para um dos nomes e o outro requer novo ponto para referência do seu ID.

Algoritmos

Algoritmo de recuperação do segmento a partir do ID: o polígono da célula serve de seletor de segmento. Se por acaso retornar mais de uma via, calcular aquela que possui maior extensão na interseção com a célula.

Algoritmo de eleição do ID: segue a metodologia descrita acima, requer supervisão humana em diversos casos, para maior estabilidade do ID, ou para simples definição de escopo (ex. bairro).

Casos por jurisdição

ID de lote

Todo lote (ou gleba) é um polígono, que pode ser referenciado por um ponto qualquer no seu interior, tipicamente um ponto central, por ter baixa incerteza (nas proximidades das bordas a incerteza é maior). Outra forma de minimizar incerteza é adotar centros ou pontos sobre construções (building), em geral mais estáveis que o terreno livre (mais sujeito a desmembramentos e aquisição de vizinhos).

Passo a passo para se identificar um lote através de seus atributos de localização:

  1. Usar ST_PointOnSurface, confirmando se dentro de certo ST_Buffer(ST_GeometricMedian). Se não for, usar um buffer maior (com diâmetro característico da área) e sua interseção com o polígono, para garantir estabilidade do ponto. O processo, a princípio, dá conta de lotes com buracos, mas não é garantido em lotes descontínuos — ideal nesse caso identificar cada parte como lote independente.
  2. Obter o AFAcode desse ponto, com precisão de 1m.

Em geral o lote já foi modelado por uma subpavimentação de resolução compatível com a área ocupada (tipicamente cobrindo 90% ou mais da área do lote), viabilizando a escolha de um ID público mais curto e estável. Neste caso temos outra metodologia, mais simples e eficiente:

  1. Obter comprimento mínimo do conjunto dos IDs de cobertura interna do lote.
  2. Se houver apenas um, usar ele; se houver mais de um, eleger o mais próximo do ponto ST_GeometricMedian.

Outras situações, vão depender da legislação da jurisdição:

  • Desmembramento (desdobro) de gleba ou lote:
    • [se regra herança] a parte que ficou com o centroide do ID herda o ID, a outra será submetida ao algoritmo de batismo.
    • [se regra 2 novos IDs] cada uma das partes é submetida a um novo ID.
  • União (fusão/englobamento) de lotes:
    • [se regra herança] preserva-se o de maior área, ou, em caso de áreas iguais, o de ID mais baixo.
    • [se regra novo ID] o resultado é submetido a um novo ID, com o cuidado de não repetir nenhum dos anteriores. Matematicamente sempre é possível ao maior ter menos dígitos.
  • Deslocamento de lote: seja por falha no mapeamento (ex. revisão de divisas) ou natural (ex. terremoto), o ID pode ser mantido se ainda tiver seu centroide e 75% (ou mais) de sua área dentro do lote revisado. Há que se estudar o impacto disso, mas ideal rebatizar com resolução maior para manter-se como célula interior.
    Caso o centroide caia fora porém com mais um dígito caia dentro, vale avaliar política de cadastro que aceite essa mudança de precisão.

Algoritmos

Algoritmo de recuperação do lote a partir do ID, antes de ser batizado: o ponto central da célula ID serve de seletor de polígino.

Algoritmo de eleição do ID: segue a metodologia descrita acima, sem necessidade de supervisão humana, exceto em caso (em geral inválido) de multipolígono.

Casos por jurisdição

ID de endereço

Todo endereço horizontal é relativo a um lote e a uma via. Deve ser representado por um ponto interior ao lote e próximo da via.

Existem duas situações para o batismo do endereço com seu ID:

  1. Quando os lotes são desconhecidos ou um ID posicional é exigido: os endereços são pontos exatos. Há o risco de se mover os pontos, por exemplo para mais próximos da via (testada de lote). Nesse caso o ID-velho é associado ao ID-novo (alias para o canônico), de forma transparente para o usuário. É suposto que antigo e novo são pontos sobre o mesmo lote.
  2. Quando são exigidos previamente os lotes dos endereços: o identificador de lote é usado como referência, e os endereços são contadores dentro do lote. Isso dá liberdade para se reposicionar pontos de endereço, por exemplo para as proximidades da rua.

ID de rio

Hidrovias, córregos e rios podem receber IDs, de forma análoga às vias...

...

Brasil:

  • ANA já classificou todos os trechos de rios com código de ottobacias (ottocodificação)
  • ...

Geo-tokens

IDs podem ser resolvidos através de "aliases", apontando para ID espacializado, tipicamente um GGeohash.

Solução para pre-espacialização

NFTs tradicionalmente são hashes, mas no caso de GGeohashes, que não é um hash criptográfico nem de encapsulamento de metadados genéricos, surge a dicotomia entre usar ou não a espacialização, ou usar ou não um ID espacial ainda não oficialmente legitimado.

Questão ténica. Para evitar necessidade de mudança na representação interna usual do AFAcodes, são eleitos "quadrantes impossíveis" (por exemplo fora do território nacional) para serem referência de zero na contagem hierárquica ou classificador de referência para uso dos demais bits como contadores.

Ver também requisitos gerais dos IDs e seus protocolos em https://www.w3.org/TR/did-use-cases/#authenticate

Ligações externas

  • ...