2 585
edições
m (→Bloco L0: nomes corrigidos) |
(issue 2) |
||
Linha 70: | Linha 70: | ||
</pre> | </pre> | ||
|} | |} | ||
== Issue 02 - Função estimadora de cobertura interior e quadrado envolvente == | |||
Para fazer estimativas sobre células de km2. A função f(x) que retorna potências ''side'' e ''next'': | |||
* ''side'': estimativa para conferir se a área de uma célula recortada (ou seja célula de cobertura) é ou não uma célula interior (sem recortes), apenas pelo valor de sua área. | |||
* ''next'': para chutar o quadrado envolvente inicial de um país (pode dispensar cobertura), ou de um município. | |||
Abaixo a função com exemplo da área do Brasil. | |||
<pre> | |||
-- A = 8510417.771 km2: | |||
with t as (select sqrt(8510417.771 *1000^2) as x) | |||
select p as side_pow_exp, 2^p as side_pow_val, | |||
round( (100.0*(2^p-x)/2^p)::numeric , 2)::real side_diff_perc, | |||
p+1 as next_pow_exp, 2^(p+1) as next_pow_val, | |||
round( (100.0*(2^(p+1)-x)/2^(p+1))::numeric , 2)::real next_diff_perc | |||
from (select round(log(x)/log(2)) p,x from t) t2; | |||
-- side_pow_exp | side_pow_val | side_diff_perc | next_pow_exp | next_pow_val | next_diff_perc | |||
-- -------------+--------------+----------------+--------------+--------------+---------------- | |||
-- 21 | 2097152 | -39.11 | 22 | 4194304 | 30.45 | |||
-- A = 757637 km2: | |||
side_pow_exp | side_pow_val | side_diff_perc | | |||
--------------+--------------+----------------| | |||
20 | 1048576 | 16.99 | | |||
-- A = 1099512 km2: | |||
20 | 1048576 | 0 | | |||
</pre> | |||
No caso da área do Brasil (de 8510417.771 km2) temos o next como estimativa de quadrado envolvente, com lados de 2^22 km: | |||
# quadrado com 2^22 metros de lado contém o Brasil. | |||
# Primeiro dígito base4 é a cobertura de 4 quadrados com 2^21 metros cada | |||
# Primeiro dígito base16 é a cobertura de 16 quadrados com 2^20 metros de lado cada. | |||
Nas áreas de células conferimos qual tem ''side_diff_perc=0'', que foi apenas o caso de A = 1099512 km2. |
edições