2 402
edições
m (→Tratamento das configurações: fT fP fN) |
|||
(2 revisões intermediárias por 2 usuários não estão sendo mostradas) | |||
Linha 12: | Linha 12: | ||
Os parâmetros principais do YAML da Colômbia, por exemplo, são: | Os parâmetros principais do YAML da Colômbia, por exemplo, são: | ||
<pre> | <pre> | ||
dngsCode_definition: | |||
srid: 102022 | srid: 102022 | ||
grid_xy_origin: 3678500 970000 | grid_xy_origin: 3678500 970000 | ||
Linha 24: | Linha 24: | ||
* ''grid_cell_side'': é o tamanho (potência de 2) da célula ''L0'' adotada; | * ''grid_cell_side'': é o tamanho (potência de 2) da célula ''L0'' adotada; | ||
* ''grid_l0_cell'': a lista de coordenadas ''ij'' da matriz de células, indicando aquelas selecionados para a cobertura; | * ''grid_l0_cell'': a lista de coordenadas ''ij'' da matriz de células, indicando aquelas selecionados para a cobertura; | ||
* '' | * ''grid_l0_cell_idxb16'': a sua correspondente indexação, já expressa em base16. | ||
A parametrização YAML poderia ser lida diretamente do arquivo (pendente implementar essa estratégia); todavia, atualmente, seus parâmetros estão embutidos na função wrapper <code>[https://github.com/osm-codes/GGeohash/blob/main/src/step04def-ini.sql#L67-L82 osmc.L0cover_upsert]</code>. | A parametrização YAML poderia ser lida diretamente do arquivo (pendente implementar essa estratégia); todavia, atualmente, seus parâmetros estão embutidos na função wrapper <code>[https://github.com/osm-codes/GGeohash/blob/main/src/step04def-ini.sql#L67-L82 osmc.L0cover_upsert]</code>. | ||
Linha 81: | Linha 81: | ||
A coluna ''cbits'' é composta de duas partes, o código do país e o código da sua célula ''L0''. O código é traduzido em hexadecimal (base16) na coluna ''b16'', e suas células formam a cobertura do país, ou seja, a grade de nível zero. Nos [[osmc:Convenções/Grade científica multifinalitária|geocódigos de notação científica]] apare cerão sempre como primeiro dígito. | A coluna ''cbits'' é composta de duas partes, o código do país e o código da sua célula ''L0''. O código é traduzido em hexadecimal (base16) na coluna ''b16'', e suas células formam a cobertura do país, ou seja, a grade de nível zero. Nos [[osmc:Convenções/Grade científica multifinalitária|geocódigos de notação científica]] apare cerão sempre como primeiro dígito. | ||
Os códigos de | Os códigos dos países são números inteiros de 8 bits (atualmente, sem compromisso com códigos ISO de 10 bits), garantindo melhor ocupação nos 57 bits (56 bits para acomodar 14 dígitos hexadecimais) disponíveis de geocódigo [[Código_Natural/Representação_interna#hInt|hInt64]] (essa representação alternativa é mais eficiente e versátil do que o tipo de dado ''varbit'' (bit string) do PostgreSQL. | ||
A interseção da geometria da célula com o polígono do país tem a sua área indicada pela coluna ''area_km2''. A coluna ''is_contained'' é um flag, verdadeiro quando a célula | A interseção da geometria da célula com o polígono do país tem a sua área indicada pela coluna ''area_km2''. A coluna ''is_contained'' é um flag, verdadeiro quando a célula está contida no polígono do país. Ver [[osmc:Metodologia/Algoritmo_SQL/Issues#Issue_02_-_Função_estimadora_de_cobertura_interior_e_quadrado_envolvente|Issue 02 para detalhes sobre a dedução do caso cheio pela área]]. | ||
<syntaxhighlight lang="sql"> | <syntaxhighlight lang="sql"> | ||
Linha 130: | Linha 130: | ||
grid_lc: 5 5 | grid_lc: 5 5 | ||
grid_l0_cell: 40 41 42 43 30 31 32 33 34 21 22 23 11 12 13 02 44 24 | grid_l0_cell: 40 41 42 43 30 31 32 33 34 21 22 23 11 12 13 02 44 24 | ||
grid_l0_cell_idx: 0 1 2 3 4 5 6 7 8 9 a b c d e | grid_l0_cell_idx: 0 1 2 3 4 5 6 7 8 9 a b c d e fT fP fN | ||
</pre> | </pre> | ||
As configurações podem ser reescritas com auxilio de uma query: | As configurações podem ser reescritas com auxilio de uma query: | ||
Linha 138: | Linha 137: | ||
select i,j from generate_series(0,4) t1(i), generate_series(0,4) t2(j) | select i,j from generate_series(0,4) t1(i), generate_series(0,4) t2(j) | ||
), c AS ( -- cover cells | ), c AS ( -- cover cells | ||
select i,j, (natcod.baseh_to_vbit('{0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,fT,fP,fN}'::text[],16))[(p+2)/3] as cbits | select i,j, (natcod.baseh_to_vbit('{0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,fT,fP,fN}'::text[],16))[(p+2)/3] as cbits | ||
from ( | from ( |
edições