Skip to content

Commit

Permalink
Merge pull request #590 from basedosdados/feat/censo-indigenas-quilom…
Browse files Browse the repository at this point in the history
…bolas

[feat]: add new `br_ibge_censo_2022` models
  • Loading branch information
arthurfg authored May 10, 2024
2 parents ba7920d + 3b615af commit a0b3bc7
Show file tree
Hide file tree
Showing 9 changed files with 901 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{{
config(
alias="indigenas_indice_envelhecimento_localizacao_domicilio_municipio",
schema="br_ibge_censo_2022",
)
}}
select
safe_cast(ano as int64) ano,
safe_cast(cod_ as string) id_municipio,
safe_cast(localizacao_do_domicilio as string) localizacao_domicilio,
safe_cast(quesito_de_declaracao_indigena as string) quesito_declaracao_indigena,
safe_cast(
replace(
indice_de_envelhecimento_da_populacao_indigena_idosos_60_anos_ou_mais_de_idade_razao_,
",",
"."
) as float64
) indice_envelhecimento,
safe_cast(idade_mediana_da_populacao_indigena_anos_ as int64) idade_mediana,
safe_cast(
replace(razao_de_sexo_da_populacao_indigena_razao_, ",", ".") as float64
) razao_sexo,
from
`basedosdados-staging.br_ibge_censo_2022_staging.indigenas_indice_envelhecimento_localizacao_domicilio_municipio`
as t
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
{{
config(
alias="indigenas_indice_envelhecimento_terras_indigenas",
schema="br_ibge_censo_2022",
)
}}
select
safe_cast(ano as int64) ano,
safe_cast(cod_ as string) id_terra_indigena,
safe_cast(
trim(
regexp_extract(terra_indigena_por_unidade_da_federacao, r'([^\(]+)')
) as string
) terra_indigena,
case
when regexp_contains(terra_indigena_por_unidade_da_federacao, r'\(\w{2}\)')
then
safe_cast(
trim(
regexp_extract(
terra_indigena_por_unidade_da_federacao, r'\((\w{2})\)'
)
) as string
)
else
safe_cast(
trim(
split(
split(terra_indigena_por_unidade_da_federacao, '(')[
safe_offset(2)
],
')'
)[safe_offset(0)]
) as string
)
end as sigla_uf,
safe_cast(quesito_de_declaracao_indigena as string) quesito_declaracao_indigena,
safe_cast(
replace(
indice_de_envelhecimento_da_populacao_residente_em_terras_indigenas_idosos_60_anos_ou_mais_de_idade_razao_,
",",
"."
) as float64
) indice_envelhecimento,
safe_cast(
idade_mediana_da_populacao_residente_em_terras_indigenas_anos_ as int64
) idade_mediana,
safe_cast(
replace(
razao_de_sexo_da_populacao_residente_em_terras_indigenas_razao_, ",", "."
) as float64
) razao_sexo,
safe_cast(
replace(
indice_de_envelhecimento_da_populacao_indigena_residente_em_terras_indigenas_idosos_60_anos_ou_mais_de_idade_razao_,
",",
"."
) as float64
) indice_envelhecimento_populacao_indigena,
safe_cast(
idade_mediana_da_populacao_indigena_residente_em_terras_indigenas_anos_ as int64
) idade_mediana_populacao_indigena,
safe_cast(
replace(
razao_de_sexo_da_populacao_indigena_residente_em_terras_indigenas_razao_,
",",
"."
) as float64
) razao_sexo_populacao_indigena,
from
`basedosdados-staging.br_ibge_censo_2022_staging.indigenas_indice_envelhecimento_terras_indigenas`
as t
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
{{
config(
alias="indigenas_localizacao_docimicilio_grupo_idade_municipio",
schema="br_ibge_censo_2022",
)
}}
with
ibge as (
select
safe_cast(ano as int64) ano,
safe_cast(cod_ as string) id_municipio,
safe_cast(localizacao_do_domicilio as string) localizacao_domicilio,
safe_cast(idade as string) idade,
case
when idade = 'Menos de 1 mês'
then 0
when regexp_contains(idade, r'[0-9]+ mês')
then safe_cast(regexp_extract(idade, r'[0-9]+ mês') as int64) / 12
when regexp_contains(idade, r'[0-9]+ meses')
then safe_cast(regexp_extract(idade, r'([0-9])+ meses') as int64) / 12
when regexp_contains(idade, r'[0-9]+ anos')
then cast(regexp_extract(idade, r'([0-9]+) anos') as int64)
when regexp_contains(idade, r'[0-9]+ ano')
then cast(regexp_extract(idade, r'([0-9]+) ano') as int64)
end as idade_num,
safe_cast(sexo as string) sexo,
safe_cast(pessoas_indigenas_pessoas_ as int64) pessoas,
from
`basedosdados-staging.br_ibge_censo_2022_staging.indigenas_localizacao_docimicilio_grupo_idade_municipio`
)
select
ibge.* except (idade, idade_num, pessoas),
idade_num as idade_anos,
case
when idade_num between 0 and 4
then '0 a 4 anos'
when idade_num between 5 and 9
then '5 a 9 anos'
when idade_num between 10 and 14
then '10 a 14 anos'
when idade_num between 15 and 19
then '15 a 19 anos'
when idade_num between 20 and 24
then '20 a 24 anos'
when idade_num between 25 and 29
then '25 a 29 anos'
when idade_num between 30 and 34
then '30 a 34 anos'
when idade_num between 35 and 39
then '35 a 39 anos'
when idade_num between 40 and 44
then '40 a 44 anos'
when idade_num between 45 and 49
then '45 a 49 anos'
when idade_num between 50 and 54
then '50 a 54 anos'
when idade_num between 55 and 59
then '55 a 59 anos'
when idade_num between 60 and 64
then '60 a 64 anos'
when idade_num between 65 and 69
then '65 a 69 anos'
when idade_num between 70 and 74
then '70 a 74 anos'
when idade_num between 75 and 79
then '75 a 79 anos'
when idade_num between 80 and 84
then '80 a 84 anos'
when idade_num between 85 and 89
then '85 a 89 anos'
when idade_num between 90 and 94
then '90 a 94 anos'
when idade_num between 95 and 99
then '95 a 99 anos'
else '100 anos ou mais'
end as grupo_idade,
pessoas,
from ibge
where
not (
idade like '% a %'
or idade like '100 anos ou mais'
or idade like 'Menos de 1 ano'
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
{{
config(
alias="indigenas_populacao_residente_grupo_idade_terras_indigenas",
schema="br_ibge_censo_2022",
)
}}
with
ibge as (
select
safe_cast(ano as int64) as ano,
safe_cast(cod_ as string) id_terra_indigena,
safe_cast(
trim(
regexp_extract(terra_indigena_por_unidade_da_federacao, r'([^\(]+)')
) as string
) terra_indigena,
case
when
regexp_contains(
terra_indigena_por_unidade_da_federacao, r'\(\w{2}\)'
)
then
safe_cast(
trim(
regexp_extract(
terra_indigena_por_unidade_da_federacao, r'\((\w{2})\)'
)
) as string
)
else
safe_cast(
trim(
split(
split(terra_indigena_por_unidade_da_federacao, '(')[
safe_offset(2)
],
')'
)[safe_offset(0)]
) as string
)
end as sigla_uf,
safe_cast(
quesito_de_declaracao_indigena as string
) quesito_declaracao_indigena,
safe_cast(sexo as string) sexo,
safe_cast(idade as string) idade,
case
when idade = 'Menos de 1 mês'
then 0
when regexp_contains(idade, r'[0-9]+ mês')
then safe_cast(regexp_extract(idade, r'[0-9]+ mês') as int64) / 12
when regexp_contains(idade, r'[0-9]+ meses')
then safe_cast(regexp_extract(idade, r'([0-9])+ meses') as int64) / 12
when regexp_contains(idade, r'[0-9]+ anos')
then cast(regexp_extract(idade, r'([0-9]+) anos') as int64)
when regexp_contains(idade, r'[0-9]+ ano')
then cast(regexp_extract(idade, r'([0-9]+) ano') as int64)
end as idade_num,
safe_cast(
pessoas_indigenas_residentes_em_terras_indigenas_pessoas_ as int64
) pessoas_indigenas,
safe_cast(
pessoas_residentes_em_terras_indigenas_pessoas_ as int64
) populacao_residente,
from
`basedosdados-staging.br_ibge_censo_2022_staging.indigenas_populacao_residente_grupo_idade_terras_indigenas`
)
select
ibge.* except (idade, idade_num, pessoas_indigenas, populacao_residente),
idade_num as idade_anos,
case
when idade_num between 0 and 4
then '0 a 4 anos'
when idade_num between 5 and 9
then '5 a 9 anos'
when idade_num between 10 and 14
then '10 a 14 anos'
when idade_num between 15 and 19
then '15 a 19 anos'
when idade_num between 20 and 24
then '20 a 24 anos'
when idade_num between 25 and 29
then '25 a 29 anos'
when idade_num between 30 and 34
then '30 a 34 anos'
when idade_num between 35 and 39
then '35 a 39 anos'
when idade_num between 40 and 44
then '40 a 44 anos'
when idade_num between 45 and 49
then '45 a 49 anos'
when idade_num between 50 and 54
then '50 a 54 anos'
when idade_num between 55 and 59
then '55 a 59 anos'
when idade_num between 60 and 64
then '60 a 64 anos'
when idade_num between 65 and 69
then '65 a 69 anos'
when idade_num between 70 and 74
then '70 a 74 anos'
when idade_num between 75 and 79
then '75 a 79 anos'
when idade_num between 80 and 84
then '80 a 84 anos'
when idade_num between 85 and 89
then '85 a 89 anos'
when idade_num between 90 and 94
then '90 a 94 anos'
when idade_num between 95 and 99
then '95 a 99 anos'
else '100 anos ou mais'
end as grupo_idade,
pessoas_indigenas,
populacao_residente,
from ibge
where
not (
idade like '% a %'
or idade like '100 anos ou mais'
or idade like 'Menos de 1 ano'
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{{
config(
alias="quilombolas_indice_envelhecimento_localizacao_domicilio_municipio",
schema="br_ibge_censo_2022",
)
}}
select
safe_cast(ano as int64) ano,
safe_cast(cod_ as string) id_municipio,
safe_cast(localizacao_do_domicilio as string) localizacao_domicilio,
safe_cast(
replace(
indice_de_envelhecimento_da_populacao_quilombola_idosos_60_anos_ou_mais_razao_,
",",
"."
) as float64
) indice_envelhecimento,
safe_cast(idade_mediana_da_populacao_quilombola_anos_ as int64) idade_mediana,
safe_cast(
replace(razao_de_sexo_da_populacao_quilombola_razao_, ",", ".") as float64
) razao_sexo,
from
`basedosdados-staging.br_ibge_censo_2022_staging.quilombolas_indice_envelhecimento_localizacao_domicilio_municipio`
as t
Loading

0 comments on commit a0b3bc7

Please sign in to comment.