Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion datasources.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -298,7 +298,7 @@ domains:

geocodes_passage_annuel:
API: Opendatasoft
description: Table de passage annuelle 2025, équivalence codes géographiques 2025 et année précédente d'établissement de codes (2023)
description: Table de passage annuelle 2025, équivalence codes géographiques 2025 et années précédentes d'établissement de codes depuis 2003
type: FileExtractor
endpoint: /catalog/datasets/georef-france-matching-code/exports/csv?use_labels=true
format: csv
Expand Down
25 changes: 13 additions & 12 deletions dbt_odis/models/bronze/_odis_bronze__models.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3838,37 +3838,38 @@ models:
description: date d'extraction de la donnée
data_type: timestamp without time zone

- name: population_menages_2021
- name: vw_population_nb_menages
description: |-
Extraction du fichier CSV "MEN1" fourni par l'INSEE. Millésime 2021.
Taille ( = nb d'occupants) de chaque ménage par commune,
et par la catégorie socioprofessionnelle de la personne de référence.
columns:
- name: id
- name: index
description: index
data_type: integer
- name: nivgeo
- name: NIVGEO
description: |-
Niveau de granularité géographique.
Pour ce dateset, une seule valeur possible :
COM = Commune
data_type: text
- name: codgeo
- name: CODGEO
description: |-
Code d'identification géographique.
En l'occurrence, code postal de la commune
En l'occurrence, code commune
data_type: text
- name: bpe_measure
description: FACILITIES = services
- name: LIBGEO
description: Libellé de la commune
data_type: text
- name: nbperc
description: Taille du foyer (nombre de personnes)
- name: NPERC
description: |-
Taille du foyer (en nombre de personnes entre 1 et 6+)
data_type: integer
- name: cs2_24
- name: CS2_24
description: CSP générale de la personne de référence du ménage
data_type: text
- name: nb
description: TBD
- name: NB
description: Nombre de foyers dans la ville
data_type: float

- name: population_population_superficie
Expand Down
4 changes: 0 additions & 4 deletions dbt_odis/models/bronze/_odis_bronze__sources.yml
Original file line number Diff line number Diff line change
Expand Up @@ -137,10 +137,6 @@ sources:
description: Source JSON loadée dans le champ data
loaded_at_field: created_at

- name: population_categorie_socio_pro
description: Source JSON loadée dans le champ data
loaded_at_field: created_at

- name: population_by_age
description: Source JSON - Estimation de population INSEE par âge
loaded_at_field: created_at
Expand Down
15 changes: 11 additions & 4 deletions dbt_odis/models/bronze/population_menages_2021.sql
Original file line number Diff line number Diff line change
@@ -1,9 +1,16 @@
{{ config(
tags = ['bronze', 'population'],
alias='vw_population_menages_2021'
alias='vw_population_nb_menages'
)
}}

select
{{ dbt_utils.star(from=source('bronze', 'population_menages_td_men1_2021')) }}
from {{ source('bronze', 'population_menages_td_men1_2021') }}
{% set local_year = '2021' %}

with population_nb_menages as
(
select {{ dbt_utils.star(from=source('bronze', 'population_menages_td_men1_2021')) }},
'{{ local_year }}' as "year"
from {{ source('bronze', 'population_menages_td_men1_2021') }}
)

select * from population_nb_menages
26 changes: 0 additions & 26 deletions dbt_odis/models/bronze/population_nb_menages.sql

This file was deleted.

20 changes: 20 additions & 0 deletions dbt_odis/models/gold/_odis_gold__models.yml
Original file line number Diff line number Diff line change
Expand Up @@ -570,3 +570,23 @@ models:
- name: densite
description: densité de population, nombre d'habitants au kilomètre carré.
data_type: numeric


- name: gold_population_nb_menages
description: Table contenant le nombre de ménages et le nombre moyen d'occupants par ménage à tous les niveaux géographiques (commune, département, région). Union des tables silver_population_menages, silver_population_menages_departement et silver_population_menages_region.
columns:
- name: codgeo
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ajouter l'année du codegeo si suggestion acceptée

description: Code géographique selon le niveau (Code INSEE commune, Code département, ou 'reg' + Code région)
data_type: text
- name: year
description: Année de référence des données du recensement
data_type: numeric
- name: nb_menages
description: Nombre total de ménages dans la zone géographique
data_type: numeric
- name: nb_occ_moyen
description: Nombre moyen d'occupants par ménage dans la zone géographique
data_type: numeric
- name: niveau_geo
description: Niveau géographique (COM pour commune, DEP pour département, REG pour région)
data_type: text
8 changes: 8 additions & 0 deletions dbt_odis/models/gold/_odis_gold__sources.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,4 +58,12 @@ sources:
- name: vw_population_population_superficie_stg
description: Table contenant population et superficie par code géographique et année.
loaded_at_field: created_at

- name: silver_population_menages
description: donnees nombre de menages insee nettoyees - commune

- name: silver_population_menages_region
description: donnees nombre de menages insee nettoyees - region

- name: silver_population_menages_departement
description: donnees nombre de menages insee nettoyees - departement
10 changes: 10 additions & 0 deletions dbt_odis/models/gold/gold_population_nb_menages.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{{ config(
tags = ['gold', 'population', 'nb_menages'],
)
}}

select * from {{ref('silver_population_menages')}}
union all
select * from {{ref('silver_population_menages_departement')}}
union all
select * from {{ref('silver_population_menages_region')}}
61 changes: 60 additions & 1 deletion dbt_odis/models/silver/_odis_silver__models.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1177,4 +1177,63 @@ models:
description: Population en nombre d'habitants.
data_type: integer
- name: superficie
description: Superficie en hectares.
description: Superficie en hectares.



- name: silver_population_menages
description: Table nettoyée contenant le nombre de ménages et le nombre moyen d'occupants par ménage, agrégés par commune. Les codes géographiques sont mis à jour avec la table de passage annuelle (seed geocodes_passage_annuel) pour correspondre aux codes géographiques les plus récents.
columns:
- name: codgeo
description: Code INSEE de la commune
data_type: text
- name: year
description: Année de référence des données du recensement
data_type: numeric
- name: nb_menages
description: Nombre total de ménages dans la commune
data_type: numeric
- name: nb_occ_moyen
description: Nombre moyen d'occupants par ménage dans la commune
data_type: numeric
- name: niveau_geo
description: Niveau géographique (COM pour commune)
data_type: text

- name: silver_population_menages_departement
description: Table agrégée contenant le nombre de ménages et le nombre moyen d'occupants par ménage au niveau département. Les données communales sont agrégées en utilisant le modèle de référence géographique com_dep_reg.
columns:
- name: codgeo
description: Code INSEE du département
data_type: text
- name: year
description: Année de référence des données du recensement
data_type: numeric
- name: nb_menages
description: Nombre total de ménages dans le département (somme des ménages des communes)
data_type: numeric
- name: nb_occ_moyen
description: Nombre moyen d'occupants par ménage dans le département (moyenne pondérée par le nombre de ménages)
data_type: numeric
- name: niveau_geo
description: Niveau géographique (DEP pour département)
data_type: text

- name: silver_population_menages_region
description: Table agrégée contenant le nombre de ménages et le nombre moyen d'occupants par ménage au niveau région. Les données communales sont agrégées en utilisant le modèle de référence géographique com_dep_reg.
columns:
- name: codgeo
description: Code INSEE de la région, préfixé par 'reg' (ex. 'reg84' pour Auvergne-Rhône-Alpes)
data_type: text
- name: year
description: Année de référence des données du recensement
data_type: numeric
- name: nb_menages
description: Nombre total de ménages dans la région (somme des ménages des communes)
data_type: numeric
- name: nb_occ_moyen
description: Nombre moyen d'occupants par ménage dans la région (moyenne pondérée par le nombre de ménages)
data_type: numeric
- name: niveau_geo
description: Niveau géographique (REG pour région)
data_type: text
3 changes: 3 additions & 0 deletions dbt_odis/models/silver/_odis_silver__sources.yml
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,9 @@ sources:
description: Vue contenant la population par tranche d'âge et genre.
loaded_at_field: created_at

- name: vw_population_nb_menages
description: View contenant

- name: vw_population_categorie_socio_pro
description: Vue contenant la population associée aux différentes catégories socio-professionnelles.
loaded_at_field: created_at
Expand Down
22 changes: 22 additions & 0 deletions dbt_odis/models/silver/silver_population_menages.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{{ config(
tags = ['silver', 'population'],
alias='silver_population_menages'
)
}}

with population_nb_menages as (
select
coalesce(passage."Code Courant Officiel", pop."CODGEO") as codgeo,
pop.year,
SUM(pop."NB") as nb_menages,
SUM(pop."NPERC" * pop."NB") / nullif(SUM(pop."NB"),0) as nb_occ_Moyen,
'COM' as niveau_geo
from {{ ref('population_menages_2021') }} pop
left join {{ ref('geocodes_passage_annuel') }} passage
on pop."CODGEO" = passage."Ancien Code Officiel"
and passage."Niveau" = 'COM'
where pop."NIVGEO" = 'COM'
group by coalesce(passage."Code Courant Officiel", pop."CODGEO"), pop.year
)

select * from population_nb_menages
20 changes: 20 additions & 0 deletions dbt_odis/models/silver/silver_population_menages_departement.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{{ config(
tags = ['silver', 'population'],
alias='silver_population_menages_departement'
)
}}

with population_nb_menages_dept as (
select
geo."CODDEP" as codgeo,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je rajouterais l'année du code geo ici par sécurité, vu qu'ils changent annuellement - en plus du code et du type.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bonne idée, mais je ne trouve pas l'info de l'année du codgeo... je creuse

year,
SUM(pop."NB") as nb_menages,
SUM(pop."NPERC" * pop."NB") / nullif(SUM(pop."NB"),0) as nb_occ_Moyen,
'DEP' as niveau_geo
from {{ ref('population_menages_2021') }} pop
inner join {{ ref('com_dep_reg') }} geo on pop."CODGEO" = geo."CODGEO"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pour pousser le raisonnement il faudrait aussi faire la jointure sur l'année du codegeo - en l'ajoutant aussi dans com_dep_reg. Mais bon probablement overkill dans ce contexte :)

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Les codgeo de com_dep_reg sont mis à jour depuis l'api Melodi, je crois que l'api ne renvoit pas de champs concernant l'année malheureusement.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On peut ajouter un test pour s'assurer que toutes les communes ont bien un codgeo dans com_dep_reg

where pop."NIVGEO" = 'COM'
group by geo."CODDEP", year
)

select * from population_nb_menages_dept
20 changes: 20 additions & 0 deletions dbt_odis/models/silver/silver_population_menages_region.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{{ config(
tags = ['silver', 'population'],
alias='silver_population_menages_region'
)
}}

with population_nb_menages_reg as (
select
'reg' || geo."CODREG" as codgeo,
year,
SUM(pop."NB") as nb_menages,
SUM(pop."NPERC" * pop."NB") / nullif(SUM(pop."NB"),0) as nb_occ_Moyen,
'REG' as niveau_geo
from {{ ref('population_menages_2021') }} pop
inner join {{ ref('com_dep_reg') }} geo on pop."CODGEO" = geo."CODGEO"
where pop."NIVGEO" = 'COM'
group by geo."CODREG", year
)

select * from population_nb_menages_reg
9 changes: 0 additions & 9 deletions dbt_odis/models/silver/silver_population_nb_menages.sql

This file was deleted.

16 changes: 14 additions & 2 deletions dbt_odis/seeds/_odis_bronze__seeds.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ seeds:
- name: Intitulés_FAP2021
description: "Correspondance des codes FAP Métiers et FAP secteurs avec leurs intitulés"
config:
quote_columns: true
quote_columns: true
delimiter: ';'
column_types:
Code_FAP341: text
Expand All @@ -50,4 +50,16 @@ seeds:
Code_FAP86: text
Intitulé_FAP86: text
Code_FAP22: text
Intitulé_FAP22: text
Intitulé_FAP22: text

- name: geocodes_passage_annuel
description: "Table de passage annuelle 2025, équivalence codes géographiques 2025 et année précédente d'établissement de codes (2023)"
config:
quote_columns: true
delimiter: ';'
column_types:
Année: text
Niveau: text
Type: text
Ancien Code Officiel: text
Code Courant Officiel: text
Loading