198
edições
mSem resumo de edição |
(→Configuração do país: Ajustes.) |
||
(3 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 19: | Linha 19: | ||
grid_l0_cell_idxb16: 8 a 1 3 9 b 4 6 c e 5 7 d 0 2 f | grid_l0_cell_idxb16: 8 a 1 3 9 b 4 6 c e 5 7 d 0 2 f | ||
</pre> | </pre> | ||
onde [https://postgis.net/docs/using_postgis_dbmanagement.html#spatial_ref_sys ''srid''] é a projeção igual-area do país; ''grid_xy_origin'' é a origem no plano projetado; ''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; | onde: | ||
* [https://postgis.net/docs/using_postgis_dbmanagement.html#spatial_ref_sys ''srid''] é a projeção igual-area do país; | |||
* ''grid_xy_origin'': é a origem no plano projetado; | |||
* ''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_sci_base'': 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 | 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 configuração é efetivada pela chamada com o país específico, por exemplo Brasil <code>SELECT osmc.L0cover_upsert('BR');</code> | A configuração é efetivada pela chamada com o país específico, por exemplo Brasil <code>SELECT osmc.L0cover_upsert('BR');</code> | ||
A função <code>L0_upsert()</code> atualiza a tabela ''osmc.coverage'' com linhas ''is_country'' e sem popular as colunas ''cindex'', ''is_overlay'' ou ''kx_prefix'' (utilizadas apenas por coberturas municipais). A tabela abaixo, gerada pelo relatório ''v001_osmc_coverage_l0_list'' apresentado em seguida, ilustra os casos típicos do Brasil, Camarões e Colômbia: | A função <code>osmc.L0_upsert()</code> atualiza a tabela ''osmc.coverage'' com linhas ''is_country'' e sem popular as colunas ''cindex'', ''is_overlay'' ou ''kx_prefix'' (utilizadas apenas por coberturas municipais). A tabela abaixo, gerada pelo relatório ''osmc_report.v001_osmc_coverage_l0_list'' apresentado em seguida, ilustra os casos típicos do Brasil, Camarões e Colômbia: | ||
{| class="wikitable" | {| class="wikitable" | ||
! pais !! is_contained !! cbits !! b16 !! area_km2 | ! pais !! is_contained !! cbits !! b16 !! area_km2 | ||
|- | |- | ||
| BR = | | BR = 1 = 00000001 || f || 00000001.00000000 || 00 || 275241 | ||
|- | |- | ||
| BR = | | BR = 1 = 00000001 || f || 00000001.00000001 || 01 || 757637 | ||
|- | |- | ||
| BR = | | BR = 1 = 00000001 || f || 00000001.00000010 || 02 || 645014 | ||
|- | |- | ||
| | | ... | ||
|- | |- | ||
|. | | BR = 1 = 00000001 || f || 00000001.00010000 || 10 || 1519 | ||
|- | |- | ||
| BR = | | BR = 1 = 00000001 || f || 00000001.00010001 || 11 || 3618 | ||
|- | |- | ||
| BR = | | BR = 1 = 00000001 || t || 00000001.00000110 || 06 || 1099512 | ||
|- | |- | ||
| | | CM = 3 = 00000011 || f || 00000011.0001 || 1 || 16259 | ||
|- | |- | ||
| | | CM = 3 = 00000011 || f || 00000011.0010 || 2 || 1261 | ||
|- | |- | ||
| CM = | | CM = 3 = 00000011 || f || 00000011.0011 || 3 || 43764 | ||
|- | |- | ||
| | | ... | ||
|- | |- | ||
| CM = | | CM = 3 = 00000011 || f || 00000011.1110 || e || 49039 | ||
|- | |- | ||
|. | | CM = 3 = 00000011 || f || 00000011.1111 || f || 14919 | ||
|- | |- | ||
| CM = | | CM = 3 = 00000011 || t || 00000011.1010 || a || 68719 | ||
|- | |- | ||
| | | CO = 2 = 00000010 || f || 00000010.0000 || 0 || 8083 | ||
|- | |- | ||
| CO = | | CO = 2 = 00000010 || f || 00000010.0001 || 1 || 230987 | ||
|- | |- | ||
| CO = | | CO = 2 = 00000010 || f || 00000010.0010 || 2 || 57590 | ||
|- | |- | ||
| | | ... | ||
|- | |- | ||
|. | | CO = 2 = 00000010 || f || 00000010.1101 || d || 196017 | ||
|- | |- | ||
| CO = | | CO = 2 = 00000010 || f || 00000010.1110 || e || 84471 | ||
|- | |- | ||
| CO = | | CO = 2 = 00000010 || f || 00000010.1111 || f || 61264 | ||
|} | |} | ||
Linha 79: | 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"> |
edições