Skip to content

Commit dc0389e

Browse files
authored
Feat/164 population csp (#200)
2 parents 5b22362 + 9e79f62 commit dc0389e

15 files changed

+473
-352
lines changed

datasources.yaml

Lines changed: 18 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,15 @@ domains:
296296
name: excelfile_dfload
297297
type: notebook
298298

299+
geocodes_passage_annuel:
300+
API: Opendatasoft
301+
description: Table de passage annuelle 2025, équivalence codes géographiques 2025 et année précédente d'établissement de codes (2023)
302+
type: FileExtractor
303+
endpoint: /catalog/datasets/georef-france-matching-code/exports/csv?use_labels=true
304+
format: csv
305+
load_params:
306+
separator: ;
307+
299308
accueil:
300309

301310
cada_cph_huda:
@@ -550,7 +559,6 @@ domains:
550559

551560
population:
552561

553-
554562
by_age:
555563
API: INSEE.Melodi
556564
description: Répartition de la population par tranches d'âge
@@ -568,42 +576,21 @@ domains:
568576

569577
by_age_gender:
570578
API: INSEE.Melodi
571-
description: Répartition de la population par tranches d'âge et par genre (M/F, Cis/Trans)
579+
description: Répartition de la population par tranches d'âge et par genre
572580
type: MelodiExtractor
573-
endpoint: /data/DS_ESTIMATION_POPULATION # Dataset des estimations de population de l'INSEE
581+
endpoint: /data/DS_RP_POPULATION_PRINC # recensement données principales
574582
format: json
575583
extract_params:
576584
maxResult: 10000
577-
SEX:
578-
- M # Hommes (all)
579-
- M_cis # Hommes cis
580-
- F # Femmes (all)
581-
- F_cis # Femmes cis
582-
- TS # Personnes Trans
583-
- _Z # 'Non Applicable'
584-
EP_MEASURE: POP # Prendre uniquement la mesure de population
585+
TIME_PERIOD: 2022
586+
SEX: ["M", "F", "_T"]
587+
GEO: ["COM", "DEP", "REG"]
588+
RP_MEASURE: POP
585589
response_map:
586590
data: observations
587591
next: paging.next
588592
is_last: paging.isLast
589593

590-
# repartition_sexe_age:
591-
# API: INSEE.Melodi
592-
# description: repartition de la population par sexe et par tranche d'age
593-
# type: MelodiExtractor
594-
# endpoint: /data/DS_RP_POPULATION_PRINC
595-
# format: json
596-
# extract_params:
597-
# maxResult: 10000
598-
# TIME_PERIOD: 2021
599-
# GEO: ["COM","DEP","REG"]
600-
# SEX: ["F","M"]
601-
# AGE: ["Y_LT15","Y15T24","Y25T39","Y40T54","Y55T64","Y65T79","Y_GE80"]
602-
# response_map:
603-
# data: observations
604-
# next: paging.next
605-
# is_last: paging.isLast
606-
607594
population_superficie:
608595
API: INSEE.Melodi
609596
description: recuperation de la population et de la superficie pour calcul de densite
@@ -629,13 +616,12 @@ domains:
629616
format: json
630617
extract_params:
631618
maxResult: 10000
632-
startPeriod: "2009-01-01"
633-
endPeriod: "2025-10-01"
619+
TIME_PERIOD: 2022
634620
GEO: ["COM","DEP","REG"]
635621
SEX: "_T"
636622
RP_MEASURE: "POP"
637-
AGE: "Y_GE15"
638-
PCS: ["1","2","3","4","5","6","7","9"]
623+
AGE: "Y_GE15" # 15 years old or more
624+
PCS: ["1", "2", "3", "4", "5", "6", "7", "9", "_T"] # 8 was excluded (students), added it back just in case
639625
response_map:
640626
data: observations
641627
next: paging.next

dbt_odis/models/bronze/_odis_bronze__models.yml

Lines changed: 51 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1209,6 +1209,25 @@ models:
12091209
description: date d'extraction des données
12101210
data_type: timestamp without time zone
12111211

1212+
- name: vw_geographical_references_geocodes_passage_annuel
1213+
description: Extraction du CSV avec l'équivalence des codes géographiques depuis la dernière année d'établissement des codes.
1214+
columns:
1215+
- name: geocode_year
1216+
description: Année la plus récente d'établissement des codes géographiques
1217+
data_type: text
1218+
- name: geocode_type
1219+
description: Type de code géographique ("COM", "ARM", "REG", etc.).
1220+
data_type: text
1221+
- name: geocode_type_name
1222+
description: Description de code géographique ("commune", "arrondisseent municipal", etc.).
1223+
data_type: text
1224+
- name: old_geocode
1225+
description: Ancien code géographique, à l'année d'établissement précédent la plus récente.
1226+
data_type: text
1227+
- name: geocode
1228+
description: Code géographique courant, à l'année d'établissement la plus récente.
1229+
data_type: text
1230+
12121231
# Logement
12131232
- name: logements_appartement
12141233
description: Extraction du JSON source logement nombre d'appartements par zone géographique
@@ -3706,28 +3725,29 @@ models:
37063725
- name: population_categorie_socio_pro
37073726
description: Extraction du JSON source CSP par population
37083727
columns:
3709-
- name: dimension_age
3728+
- name: age
37103729
description: Segmentation âge
3711-
data_type: integer
3712-
- name: dimensions_geo
3713-
description: "Clé primaire unique d'identification : Année de mesure - Type de zone géographique - Code INSEE (COM = 5 chiffres) ou Code postal (DEP = 3 chiffres et REG = 2 chiffres)"
37143730
data_type: text
3715-
tests:
3716-
- not_null
3717-
- name: dimensions_pcs
3718-
description: _
3731+
- name: geo
3732+
description: |-
3733+
Union année code - type de code - code géographique.
3734+
e.g. 2025-COM-01001.
3735+
L'année correspond à l'année de définition du code géographique par l'insee.
37193736
data_type: text
3720-
- name: dimensions_sex
3721-
description: _
3737+
- name: pcs
3738+
description: catégorie socio-professionnelle (de 1 à 9, 8 - étudiants non renseigné en 2022).
37223739
data_type: text
3723-
- name: dimensions_rp_measure
3740+
- name: sex
37243741
description: _
37253742
data_type: text
3726-
- name: dimensions_time_period
3727-
description: Période temporelle en année de mesure de la donnée
3743+
- name: rp_measure
3744+
description: Indicateur d'intérêt.
37283745
data_type: text
3729-
- name: measures_obs_value_niveau_value
3730-
description: nombre mesuré du type d'habitation = appartement par zone géographique et par année
3746+
- name: time_period
3747+
description: Période ou point dans le temps auquel l'observation se réfère effectivement.
3748+
data_type: text
3749+
- name: measure_value
3750+
description: Valeur de l'indicateur d'intérêt.
37313751
data_type: text
37323752

37333753
- name: population_by_age
@@ -3768,33 +3788,27 @@ models:
37683788
- name: id
37693789
description: index
37703790
data_type: integer
3771-
- name: dimensions_GEO
3772-
description: unité géographique (REG, DEP, COM)
3773-
data_type: text
3774-
- name: dimensions_SEX
3791+
- name: geo
37753792
description: |-
3776-
Filtre par genre (H/F et cis/trans).
3777-
_T = total tout confondu
3778-
H = Homme (all)
3779-
F = Femme (all)
3780-
H_cis = Homme cis
3781-
F_cis = Femme cis
3782-
TS = Personne trans
3793+
Union année code - type de code - code géographique.
3794+
e.g. 2025-COM-01001.
3795+
L'année correspond à l'année de définition du code géographique par l'insee.
37833796
data_type: text
3784-
- name: dimensions_AGE
3785-
description: filtre par âge
3797+
- name: sex
3798+
description: _
37863799
data_type: text
3787-
- name: dimensions_TIME_PERIOD
3788-
description: Période temporelle (millésime) de la donnée
3800+
- name: age
3801+
description: tranche d'âge.
37893802
data_type: text
3790-
- name: dimensions_EP_MEASURE
3791-
description: |-
3792-
Type de mesure.
3793-
POP = effectif de population
3803+
- name: rp_measure
3804+
description: Indicateur d'intérêt.
3805+
data_type: text
3806+
- name: time_period
3807+
description: Période ou point dans le temps auquel l'observation se réfère effectivement.
3808+
data_type: text
3809+
- name: measure_value
3810+
description: Valeur de l'indicateur d'intérêt.
37943811
data_type: text
3795-
- name: measures_OBS_VALUE_NIVEAU_value
3796-
description: valeur numérique
3797-
data_type: integer
37983812
- name: created_at
37993813
description: date d'extraction de la donnée
38003814
data_type: timestamp without time zone

dbt_odis/models/bronze/_odis_bronze__sources.yml

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ sources:
2626
- name: geographical_references_arrondissements
2727
description: Source JSON loadée dans le champ data contenant les références des arrondissements
2828
loaded_at_field: created_at
29+
30+
- name: geographical_references_geocodes_passage_annuel
31+
description: Table de passage annuelle 2025, équivalence codes géographiques 2025 et année précédente d'établissement de codes (2023)
32+
loaded_at_field: created_at
2933

3034
- name: emploi_eff_secteur_prive_gds_secteurs
3135
description: Source CSV contenant les Effectifs salariés du secteur privé par grands secteurs
@@ -129,16 +133,16 @@ sources:
129133
description: feuille xlsx transformée en CSV contenant toutes les données des logements des bailleurs sociaux (appelées Répertoire des logements locatifs des bailleurs sociaux ou RPLS) déclinées par régions
130134
loaded_at_field : created_at
131135

132-
- name: population_categorie_socio_pro
133-
description: Source JSON loadée dans le champ data
134-
loaded_at_field: created_at
135-
136136
- name: population_by_age
137137
description: Source JSON - Estimation de population INSEE par âge
138138
loaded_at_field: created_at
139139

140140
- name: population_by_age_gender
141-
description: Source JSON - Estimation de population INSEE par âge et genre
141+
description: Source JSON - données de recensement de population par âge et genre
142+
loaded_at_field: created_at
143+
144+
- name: population_categorie_socio_pro
145+
description: Source JSON - données de recensement de population par catégorie socio-professionnelle.
142146
loaded_at_field: created_at
143147

144148
- name: population_menages_td_men1_2021

dbt_odis/models/bronze/population_by_age_gender.sql

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,19 @@
11
{{ config(
22
tags = ['bronze', 'population'],
33
alias = 'vw_population_by_age_gender'
4-
)
5-
}}
4+
) }}
65

76

87
with people as
98
(
109
select
1110
id,
12-
{# {{ extract_json_keys_recursive(
13-
table_ref = source('bronze', 'population_by_age_gender'),
14-
json_column = 'data'
15-
) }}, #}
16-
(data::jsonb)->'dimensions'->>'GEO'::text as dimensions_GEO,
17-
(data::jsonb)->'dimensions'->>'SEX'::text as dimensions_SEX,
18-
(data::jsonb)->'dimensions'->>'AGE'::text as dimensions_AGE,
19-
(data::jsonb)->'dimensions'->>'EP_MEASURE'::text as dimensions_EP_MEASURE,
20-
(data::jsonb)->'dimensions'->>'TIME_PERIOD'::text as dimensions_TIME_PERIOD,
21-
(data::jsonb)->'measures'->'OBS_VALUE_NIVEAU'->>'value'::text as measures_OBS_VALUE_NIVEAU_value,
11+
(data::jsonb)->'dimensions'->>'GEO'::text as geo,
12+
(data::jsonb)->'dimensions'->>'SEX'::text as sex,
13+
(data::jsonb)->'dimensions'->>'AGE'::text as age,
14+
(data::jsonb)->'dimensions'->>'TIME_PERIOD'::text as time_period,
15+
(data::jsonb)->'dimensions'->>'RP_MEASURE'::text as rp_measure,
16+
(data::jsonb)->'measures'->'OBS_VALUE_NIVEAU'->>'value'::text as measure_value,
2217
created_at
2318
from {{ source('bronze', 'population_by_age_gender') }}
2419
)

dbt_odis/models/bronze/population_categorie_socio_pro.sql

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,22 @@
11
{{ config(
2+
tags = ['bronze', 'population'],
23
alias = 'vw_population_categorie_socio_pro'
3-
)
4-
}}
4+
) }}
55

6-
7-
with departments as
6+
with pop_csp as
87
(
98
select
10-
(data::jsonb)->'dimensions'->>'AGE'::text as dimensions_AGE,
11-
(data::jsonb)->'dimensions'->>'GEO'::text as dimensions_GEO,
12-
(data::jsonb)->'dimensions'->>'PCS'::text as dimensions_PCS,
13-
(data::jsonb)->'dimensions'->>'SEX'::text as dimensions_SEX,
14-
(data::jsonb)->'dimensions'->>'RP_MEASURE'::text as dimensions_RP_MEASURE,
15-
(data::jsonb)->'dimensions'->>'TIME_PERIOD'::text as dimensions_TIME_PERIOD,
16-
(data::jsonb)->'measures'->'OBS_VALUE_NIVEAU'->>'value'::text as measures_OBS_VALUE_NIVEAU_value
17-
18-
from {{ source('bronze', 'population_categorie_socio_pro') }}
19-
9+
(data::jsonb)->'dimensions'->>'AGE'::text as age,
10+
(data::jsonb)->'dimensions'->>'GEO'::text as geo,
11+
(data::jsonb)->'dimensions'->>'PCS'::text as pcs,
12+
(data::jsonb)->'dimensions'->>'SEX'::text as sex,
13+
(data::jsonb)->'dimensions'->>'RP_MEASURE'::text as rp_measure,
14+
(data::jsonb)->'dimensions'->>'TIME_PERIOD'::text as time_period,
15+
(data::jsonb)->'measures'->'OBS_VALUE_NIVEAU' ->> 'value'::text as measure_value
16+
from {{ source('bronze', 'population_categorie_socio_pro') }}
2017
)
2118

22-
select * from departments
19+
select * from pop_csp
2320

2421

2522

0 commit comments

Comments
 (0)