osmc:Metodologia/Algoritmo SQL/Lib: mudanças entre as edições

Linha 10: Linha 10:
[[Arquivo:DNGS-coords1.png|miniaturadaimagem|440x440px|Sistemas de coordenadas previstos pelo padrão DNGS: LatLong, XY e IJ. A superfície ''S''<sup>2</sup> é o globo terrestre, ''R''<sup>2</sup> o "plano LatLong WGS84" e XY o plano projetado Albers. A passagem para IJ é a discretização. Um mesmo angulo sólido α em locais diferentes do globo terá áreas diferentes em ''R''<sup>2</sup>,  mas mesma área em XY.]]<!-- mais detalhes em https://math.stackexchange.com/a/849521/70274  -->
[[Arquivo:DNGS-coords1.png|miniaturadaimagem|440x440px|Sistemas de coordenadas previstos pelo padrão DNGS: LatLong, XY e IJ. A superfície ''S''<sup>2</sup> é o globo terrestre, ''R''<sup>2</sup> o "plano LatLong WGS84" e XY o plano projetado Albers. A passagem para IJ é a discretização. Um mesmo angulo sólido α em locais diferentes do globo terá áreas diferentes em ''R''<sup>2</sup>,  mas mesma área em XY.]]<!-- mais detalhes em https://math.stackexchange.com/a/849521/70274  -->


O projeto como um todo faz uso de 3 sistemas de coordenadas:
O projeto como um todo faz uso de 2 sistemas de coordenadas globais:
*'''LatLong''': WGS84 no formato [[Geo URI]]
 
*'''LatLong''': WGS84 no formato ''default'' [[Geo URI]], ou seja, coordenadas (''latitude'',''longitude'').
 
* '''global_cell_id''': global mosaic of DNGS cells. O mosaico global é composto de faces quadrilateras, identificadas pelo prefixo de célula:
** '''face_id''': chave primária de 12 bits (''SRID'', ''country_id'', ''country_cover_id''),  com 8 bits para  ''SRID×country_id'' e 4 bits para  ''country_cover_id''.
** '''cell_id''': identificador local de célula, dado por ''bit string'' com tamanho variável. Começa pelo vazio, que resulta na própria ''country_cover_id'', como grade nível ''L0''. Depois a cada 2 bits temos um nível hierárquico (''L1'', ''L2'', ...) até o nível ''Lmax'' ou completar 56 bits (limite para [[Código_Natural/Representação_interna#hInt|hInt]]). Em caso de fronteira apenas porções do território nacional são válidas, mas essa validade é presumida.
 
Algoritmos de seleção permitem identificar o SRID a ser adotado a cada ponto do globo. No padrão DNGS polígonos, linhas e multipontos só podem ser definidos no interior de uma nação. Os IDs de nação não mudam mas o SRID de nações ainda não-homologadas (em teste) podem mudar a cada ano (a cada versão do padrão DNGS). Depois de selecionada a projeção correta são selecionados  país e cobertura corretos, visto que uma mesma consulta de banco de dados já confere quadrante e eventual recorte de fronteira. Com isso temos a ''face_id''.
 
O algoritmo  de [[GGeohash|GGeohash ''encode'' da ''face_id'']] fornece o ''cell_id'' dentro da respectiva face. Esse tipo de algoritmo pode fazer uso outros dois sistemas de coordenadas:
 
* XY0: 
sistema discreto de localização das células L0 da cobertura nacional. Como ''country_id'' fornece SRID e origem (X0,Y0) dentro da projeção adotada, os valores
* XY da face:
 
 
SRID, Country_id, country_cover_id, level, j, i
 
SRID, Country_id, j0, i0 = convert to country_cover_id
 
 
*'''XY''': cartesiano escolar, coordenadas planas da projeção igual-area oficial do país
*'''XY''': cartesiano escolar, coordenadas planas da projeção igual-area oficial do país
*'''IJ''': XY discretizado. É o tradicional ''IJ'' rotacionado para que na Curva de Morton o eixo Y tenha prioridade.
*'''IJ''': XY discretizado. É o tradicional ''IJ'' rotacionado para que na Curva de Morton o eixo Y tenha prioridade.
2 583

edições