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

m
m (→‎Sistemas de coordenadas: revisao de texto)
Linha 18: Linha 18:
** '''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.
** '''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''.
Na maior parte das aplicações o ''global_cell_id'' pode ser substituído pelo ''national_cell_id'',  onde ''face_id''=''country_cover_id'', ou seja, ''SRID'' e ''country_id'' são constantes. Para as aplicações globais foram definidos os métodos [[osmc:Metodologia/Algoritmo_SQL#Seletor_de_projeção|seletor de projeção]] e [[osmc:Metodologia/Algoritmo_SQL#Seletor de jurisdição e L0|seletor de jurisdição]], que devolvem a ''face_id'' e seus parâmetros. <br>No padrão DNGS polígonos, linhas e multipontos só podem ser definidos no interior de uma nação.


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:
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:   
* '''JI0''': cada ''country_cover_id'' pode ser representado por índices ''j0'' e ''i0'' da grade ''L0'', que por sua vez podem levar à origem <math>(x0_{j0},y0_{i0})</math> de cada célula da cobertura, nas coordenadas da projeção SRID. Na prática o que temos também é <math>(x0_{face\_id},y0_{face\_id})</math> a origem em termos de ''face_id''.
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: o sistema de coordenadas planas SRID é reescrito para cada ''face_id'', para que inicie em (0,0). Segue a "convenção cartesiana escolar", de X horizontal e Y vertical.  Quando discretizado para um certo nível ''L'' pode ser também chamado de ''XYL'', complementar de ''JIL''.
* XY da face:  
* '''JIL''', índices ''JI'' da face no nível ''L'': no interior da face, cada célula de nível ''L'' pode ser localizada por seus índices ''j'' e ''i''. O ''encode''/''decode'' de ''cell_id'' é realizado primariamente com essas coordenadas.


 
O sistema ''JI'' difere da tradição matemática de indexação de matrizes, com elementos&nbsp;<math>a_{ij}</math>, índice&nbsp;''i'' variando nas linhas e ''j''&nbsp;variando nas colunas. A origem tradicional&nbsp;<math>a_{11}</math> é no canto superior esquerdo, enquanto a origem ''XY'' do eixo cartesiano é no canto inferior.
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
*'''IJ''': XY discretizado. É o tradicional ''IJ'' rotacionado para que na Curva de Morton o eixo Y tenha prioridade.
...
 
Na tradição matemática a indexação de matrizes, com elementos&nbsp;<math>a_{ij}</math>, índice&nbsp;''i'' variando nas linhas e ''j''&nbsp;variando nas colunas, a origem&nbsp;<math>a_{11}</math> é no canto superior esquerdo, enquanto a origem ''XY'' do eixo cartesiano é no canto inferior.
<!-- [[Arquivo:Matrix-IJ-conventions.png|320px|center]]-->
<!-- [[Arquivo:Matrix-IJ-conventions.png|320px|center]]-->


2 583

edições