2 402
edições
(movendo pontos para as faces) |
(→Pontos) |
||
Linha 71: | Linha 71: | ||
LATITUDE real, | LATITUDE real, | ||
LONGITUDE real, | LONGITUDE real, | ||
NV_GEO_COORD text, | NV_GEO_COORD text, -- nivel de confiança na coordenada | ||
COD_ESPECIE text, | COD_ESPECIE text, | ||
DSC_ESTABELECIMENTO text, | DSC_ESTABELECIMENTO text, | ||
Linha 84: | Linha 84: | ||
drop view if exists vw02_ibge_cnefe2022; | drop view if exists vw02_ibge_cnefe2022; | ||
create view vw02_ibge_cnefe2022 as | create view vw02_ibge_cnefe2022 as | ||
select *, ST_GeoHash(geom,9) as | select *, ST_GeoHash(geom,9) as ghs9, ST_GeoHash(geom,10) as ghs10 | ||
from ( | from ( | ||
select *, regexp_replace( coalesce(nom_tipo_seglogr,'') ||' '|| coalesce(nom_titulo_seglogr,'') ||' '|| coalesce(nom_seglogr,''), '\s+',' ','g') as via_name, | select *, regexp_replace( coalesce(nom_tipo_seglogr,'') ||' '|| coalesce(nom_titulo_seglogr,'') ||' '|| coalesce(nom_seglogr,''), '\s+',' ','g') as via_name, | ||
Linha 91: | Linha 91: | ||
) t | ) t | ||
; | ; | ||
-- | -- teste de hipotese de ponto e endereço únicos: | ||
-- select count(*) from (select distinct | -- select count(*) from (select distinct ghs9, cod_setor, num_quadra, num_face, via_name, num_endereco from vw02_ibge_cnefe2022) t; -- 379957. -- same where geom is not null and via_name>'' and num_endereco>'' ) t; | ||
-- select 379957.0/762239; -- 49,847% = 50% | -- select 379957.0/762239; -- 49,847% = 50% | ||
</pre> | </pre> | ||
Avaliação pelo qualificador do IBGE, nv_geo_coord: | |||
<pre> | |||
-- Por domicílio | |||
with t as (select count(*) as nt from ibge_cnefe2022) select nv_geo_coord, count(*) n, round(100.0*count(*)/t.nt,2)::text||'%' as perc from t,vw02_ibge_cnefe2022 group by 1,nt order by 1; | |||
</pre> | |||
Os dois primeiros são válidos, os demais podem ser descartados: | |||
=== Contagens gerais === | |||
<pre> | |||
select count(*) n_dist from (select distinct * from ibge_cnefe2022) t | |||
; -- 762239 | |||
select count(*) n, count(distinct cod_unico_endereco) n_cod_uend, count(distinct ghs) n_ghs, | |||
count(distinct latitude||','||longitude) n_latlon | |||
from vw02_ibge_cnefe2022 | |||
; -- 762239 | 757512 | 350635 | 389028 | |||
select avg(n) avg, stddev_pop(n) dev, count(*) tmultiplos, sum(n) as tot from ( | |||
select cod_unico_endereco, count(*) n from ibge_cnefe2022 group by 1 having count(*)>1 | |||
) t; -- 2.0045 | 0.07 | 4706 | 9433. Conclusão: 2.01±0.07 , maioria dos 9433 com 1 duplicidade. | |||
select count(*) n_ghs9_nv from (select distinct nv_geo_coord, ghs9 from vw02_ibge_cnefe2022) t | |||
; -- 358000 | |||
select count(*) n_ghs10_nv from (select distinct nv_geo_coord, ghs10 from vw02_ibge_cnefe2022) t | |||
; -- 393565 | |||
select sqrt(avg(st_area(ST_GeomFromGeoHash(ghs9),true))) as ghs9_precisao, | |||
sqrt(avg(st_area(ST_GeomFromGeoHash(ghs10),true))) as ghs10_precisao | |||
from vw02_ibge_cnefe2022 | |||
; -- 4.437 ~ 5 metros de precisão no Geohash de 9 dígitos. 0.7844 ~ 1 metro no de 10 dígitos. | |||
-- select round(100.0*x/762239) perc_x_of_n; | |||
select round(100.0*393565/762239) perc_x_of_n; | |||
select compl1, count(*) n_casos FROM ( | |||
select ghs, array_agg(distinct nom_comp_elem1) compl1 from vw02_ibge_cnefe2022 group by 1 having count(*)>1 | |||
) t group by 1 order by 2 desc, 1; | |||
compl1 | n_casos | |||
------------------------------------------------------+--------- | |||
{NULL} | 18184 | |||
{APARTAMENTO} | 14736 | |||
{CASA} | 8485 | |||
{FRENTE,FUNDOS} | 5855 | |||
{CASA,NULL} | 4651 | |||
{BLOCO} | 3873 | |||
{FUNDOS,NULL} | 2508 | |||
{FRENTE,NULL} | 1331 | |||
{FUNDOS} | 1111 | |||
{SOBRADO,TERREO} | 1025 | |||
{APARTAMENTO,NULL} | 951 | |||
{CASA,FUNDOS} | 653 | |||
</pre> | |||
{|class="wikitable"| | |||
|- | |||
!Rótulo !! select count(''criterio''?)<br/>from ibge_cnefe2022!! n_doms !! perc ''n'' | |||
|- | |||
|''n''<br/>= n_dist|| <code>*</code> || 762239 || 100% | |||
|- | |||
|''n_cod_uend''|| <code>distinct cod_unico_endereco</code> || 757512 || 99.4% | |||
|- | |||
|''n_latlon''|| <code><nowiki>distinct latitude||','||longitude</nowiki></code>||389028 || 51% | |||
|- | |||
|''n_ghs10'' || <code>distinct ghs10</code>||386857 || 51% | |||
|- | |||
|''n_ghs9'' || <code>distinct ghs9</code>||350635 || 46% | |||
|} | |||
Conclusões sobre o perfil de algumas contagens: | |||
* Identificadores únicos: era esperada a unicidade em 100% dos registros, ou seja, que ''n''=''n_cod_uend''. Houve, todavia, uma diferença de 0,6% (100% - 99,4%), devido a casos de repetição. O valor de contagens superiores a 1 resultou em média de 2,01±0,07; portanto maioria dos 9433 identificadores problemáticos tem apenas mais 1 outro domicílio apresentando mesmo identificador. | |||
* A contagem de ''n_latlon'', com apenas 51% ao invés de 100%, mostra a intensão do IBGE em incluir nos registros os casos de endereço horizontais iguais porém com complemento diferenciando, o que se confirma pelas contagens no perfil de ''compl1''. A rigor o IBGE registrou "endereços domicíliares", não apenas "endereços de rua". Neste relatório denominaremos o primeiro de domicílio ('''dom''') e o segundo de endereço de fato ('''end''') ou ponto. | |||
* A contagem de ''n_ghs9'' fez uso de Geohashes de 9 dígitos, garantindo a precisão da ordem de 5 metros, ou seja, superior ao erro de GPS da núvem de pontos. A contagem ''n_ghs9'' resultou em 46%, bem longe dos 51% de ''n_latlon'', gerando talvez duplicidade maior do que esperada. Como a precisão é variável (depende dos satélites GPS e do [https://www.youtube.com/watch?v=AVW40YB3v2s tempo de espera do agente]), sugere-se usar ''ghs10'' ou manter o ponto original e só depois do translado para a face de quadra (que aumenta a precisão) fazer a contagem de Geohashes ''ghs10''. | |||
{|class="wikitable"| | |||
|- | |||
! nv_geo_coord !! n_doms !! perc | |||
|- | |||
| 1 = Endereço - coordenada original do Censo 2022 || 630603 || 82.73% | |||
|- | |||
| 2 = Endereço - coordenada modificada (apartamentos em um mesmo número no logradouro). || 119942 || 15.74% | |||
|- | |||
| 3 = Endereço - coordenada estimada (endereços originalmente sem coordenadas ou coordenadas inválidas). || 8900 || 1.17% | |||
|- | |||
| 4 = Face de quadra. || 2753 || 0.36% | |||
|- | |||
| 5 = Localidade || 4 || 0.00% | |||
|- | |||
| 6 = Setor censitário || 37 || 0.00% | |||
|} | |||
<pre> | |||
-- por pontos únicos | |||
with t as (select count(*) as nt, count(distinct ghs) ntpt from vw02_ibge_cnefe2022) select nv_geo_coord, count(distinct ghs) n_pts, round(100.0*count(distinct ghs)/t.ntpt,2)::text||'%' as perc from t,vw02_ibge_cnefe2022 group by 1,ntpt order by 1; | |||
</pre> | |||
{|class="wikitable"| | |||
|- | |||
! nv_geo_coord !! n_pts !! perc | |||
|- | |||
| 1 = Endereço - coordenada original do Censo 2022 || 343098 || 97.85% | |||
|- | |||
| 2 = Endereço - coordenada modificada (apartamentos em um mesmo número no logradouro). || 11224 || 3.20% | |||
|- | |||
| 3 = Endereço - coordenada estimada (endereços originalmente sem coordenadas ou coordenadas inválidas). || 2865 || 0.82% | |||
|- | |||
| 4 = Face de quadra. || 798 || 0.23% | |||
|- | |||
| 5 = Localidade || 3 || 0.00% | |||
|- | |||
| 6 = Setor censitário || 12 || 0.00% | |||
|} | |||
Conclusão: como queremos filtrar até o nível de pontos únicos, há garantia de 99,9% dos endereços em condição adequada (tipos 1 ou 2). | |||
As filtragens seguem o seguinte passo a passo: | |||
* Unicidade de endereço: DISTINCT cod_setor, cep, via_name, num_endereco | * Unicidade de endereço: DISTINCT cod_setor, cep, via_name, num_endereco |
edições