Compare commits
10 Commits
c2bf12e3fe
...
2f1344a4c5
| Author | SHA1 | Date | |
|---|---|---|---|
| 2f1344a4c5 | |||
| 3690916127 | |||
| 8d0495f973 | |||
| e80cad0748 | |||
| db13bb1f8b | |||
| 6dbd552efc | |||
| ace0c5ea35 | |||
| 5e96cd9774 | |||
| 4ad46b4ede | |||
| 2050d73105 |
67
README.md
@@ -298,3 +298,70 @@ Le calcul lit `data/intermediate/colors_by_set.csv` et `data/intermediate/sets_e
|
|||||||
- `data/intermediate/color_richness_by_year.csv` : agrégat annuel (moyenne, médiane, bornes de diversité et concentration).
|
- `data/intermediate/color_richness_by_year.csv` : agrégat annuel (moyenne, médiane, bornes de diversité et concentration).
|
||||||
|
|
||||||
Les graphiques `figures/step28/color_richness_boxplot.png`, `figures/step28/color_richness_top_sets.png` et `figures/step28/color_concentration_scatter.png` montrent respectivement la répartition annuelle, le top des sets les plus colorés et la concentration des palettes (part des 3 couleurs dominantes vs nombre de couleurs).
|
Les graphiques `figures/step28/color_richness_boxplot.png`, `figures/step28/color_richness_top_sets.png` et `figures/step28/color_concentration_scatter.png` montrent respectivement la répartition annuelle, le top des sets les plus colorés et la concentration des palettes (part des 3 couleurs dominantes vs nombre de couleurs).
|
||||||
|
|
||||||
|
### Étape 29 : répartition par catégories de pièces (structure vs esthétique)
|
||||||
|
|
||||||
|
1. `source .venv/bin/activate`
|
||||||
|
2. `python -m scripts.compute_part_categories`
|
||||||
|
3. `python -m scripts.plot_part_categories`
|
||||||
|
|
||||||
|
Le calcul lit `data/intermediate/parts_filtered.csv`, `data/raw/parts.csv`, `data/raw/part_categories.csv` et `data/intermediate/sets_enriched.csv` pour mesurer la part de chaque catégorie de pièce (rechanges exclues), marquer celles considérées comme structurelles/technic (liste `IGNORED_PART_CATEGORY_IDS` de `lib/rebrickable/color_ignores.py`), et produire :
|
||||||
|
|
||||||
|
- `data/intermediate/part_categories_by_set.csv` : parts par set et par catégorie, avec possession et indicateur structurel.
|
||||||
|
- `data/intermediate/part_categories_by_year.csv` : parts annuelles par catégorie.
|
||||||
|
- `data/intermediate/part_categories_global.csv` : parts globales par catégorie.
|
||||||
|
|
||||||
|
Les visuels `figures/step29/top_part_categories_area.png`, `figures/step29/part_categories_heatmap.png` et `figures/step29/structural_share_timeline.png` montrent respectivement l’évolution des principales catégories (aire empilée), une heatmap exhaustive catégorie × année, et la trajectoire de la part des pièces structurelles.
|
||||||
|
|
||||||
|
### Étape 30 : visages multiples sur les têtes de minifigs
|
||||||
|
|
||||||
|
1. `source .venv/bin/activate`
|
||||||
|
2. `python -m scripts.compute_minifig_head_faces`
|
||||||
|
3. `python -m scripts.plot_minifig_head_faces`
|
||||||
|
|
||||||
|
Le calcul lit `data/intermediate/minifigs_by_set.csv`, `data/raw/parts.csv` et `data/intermediate/sets_enriched.csv` pour annoter les têtes de minifigs contenant plusieurs visages (détection par mots-clés dans le nom de pièce). Il produit :
|
||||||
|
|
||||||
|
- `data/intermediate/minifig_head_faces.csv` : têtes annotées (set, personnage, genre, indicateur dual-face).
|
||||||
|
- `data/intermediate/minifig_head_faces_by_year.csv` : volume et part des dual-face par année.
|
||||||
|
- `data/intermediate/minifig_head_faces_by_set.csv` : volume et part par set (possession incluse).
|
||||||
|
- `data/intermediate/minifig_head_faces_by_character.csv` : volume et part par personnage.
|
||||||
|
|
||||||
|
Les visuels `figures/step30/minifig_head_faces_timeline.png`, `figures/step30/minifig_head_faces_top_sets.png` et `figures/step30/minifig_head_faces_characters.png` montrent respectivement la trajectoire annuelle, le top des sets concernés et les personnages dotés de têtes dual-face.
|
||||||
|
|
||||||
|
### Étape 31 : téléchargement des ressources visuelles (sets, minifigs, têtes)
|
||||||
|
|
||||||
|
1. Renseigner `REBRICKABLE_TOKEN` dans `.env` (clé API Rebrickable).
|
||||||
|
2. `source .venv/bin/activate`
|
||||||
|
3. `python -m scripts.download_resources`
|
||||||
|
|
||||||
|
Le script lit `data/intermediate/sets_enriched.csv`, `data/intermediate/minifigs_by_set.csv` et `data/raw/minifigs.csv`. Il récupère les URLs d'images de têtes via l’API Rebrickable `/api/v3/lego/parts/{part_num}/`, ajoute la colonne `part_img_url` à `data/intermediate/minifigs_by_set.csv`, puis télécharge :
|
||||||
|
|
||||||
|
- `figures/rebrickable/{set_id}/set.jpg` : visuel du set (img_url).
|
||||||
|
- `figures/rebrickable/{set_id}/{known_character}/minifig.jpg` : visuel de la minifig complète.
|
||||||
|
- `figures/rebrickable/{set_id}/{known_character}/head.jpg` : visuel de la tête correspondante.
|
||||||
|
|
||||||
|
Les requêtes API sont dédoublonnées, espacées (fair-use) et mises en cache dans `data/intermediate/part_img_cache.csv` pour reprise en cas d’interruption. Les images déjà téléchargées sont réutilisées localement pour éviter les requêtes répétées.
|
||||||
|
|
||||||
|
### Étape 32 : frises chronologiques des minifigs par personnage
|
||||||
|
|
||||||
|
1. `source .venv/bin/activate`
|
||||||
|
2. `python -m scripts.plot_minifig_character_collages`
|
||||||
|
3. `python -m scripts.plot_minifig_head_collages`
|
||||||
|
|
||||||
|
Le script lit `data/intermediate/minifigs_by_set.csv`, `data/intermediate/sets_enriched.csv` et les ressources téléchargées dans `figures/rebrickable`. Il regroupe chaque personnage connu (hors figurants) avec les sets associés et leur année de commercialisation, pour produire :
|
||||||
|
|
||||||
|
- `data/intermediate/minifig_character_sets.csv` : apparitions des personnages avec set, identifiant de set, année, possession et fig_num.
|
||||||
|
- `figures/step32/minifig_characters/{personnage}.png` : frise horizontale par personnage, composée des visuels de minifigs dans l’ordre chronologique, annotés avec l’année, le numéro de set (avec `*` si possédé) et l’identifiant de minifig. Les minifigs dont l’image n’est pas disponible sont remplacées par un rectangle neutre pour matérialiser le manque.
|
||||||
|
- `figures/step32/minifig_heads/{personnage}.png` : même principe mais en utilisant les visuels de têtes (`head.jpg`) pour chaque apparition, annotés avec l’année, le set (avec `*` si possédé) et le `part_num` de la tête.
|
||||||
|
|
||||||
|
### Étape 33 : réutilisation des têtes de minifigs dans le catalogue
|
||||||
|
|
||||||
|
1. `source .venv/bin/activate`
|
||||||
|
2. `python -m scripts.compute_head_reuse`
|
||||||
|
3. `python -m scripts.plot_head_reuse`
|
||||||
|
|
||||||
|
Le calcul lit `data/intermediate/minifigs_by_set.csv`, `data/raw/parts.csv`, `data/raw/inventories.csv` et `data/raw/inventory_parts.csv` pour recenser les têtes présentes dans les sets filtrés, puis compter combien de sets du catalogue les contiennent (rechanges exclues). Il produit :
|
||||||
|
|
||||||
|
- `data/intermediate/head_reuse.csv` : pour chaque tête observée dans les sets filtrés, le nombre de sets filtrés qui la contiennent, le nombre de sets du reste du catalogue et le total.
|
||||||
|
- `figures/step33/head_reuse.png` : bar chart horizontal montrant, par tête, la part filtrée vs le reste du catalogue (têtes exclusives en haut).
|
||||||
|
- Les étiquettes affichent aussi l’identifiant de la minifig (`fig-*`) et un astérisque à côté du set (`set_num*`) lorsqu’il est présent dans la collection.
|
||||||
|
|||||||
@@ -30,3 +30,4 @@ Park Worker,Figurant
|
|||||||
Park Guest in Dark Pink Vest Jacket,Figurant
|
Park Guest in Dark Pink Vest Jacket,Figurant
|
||||||
Wildlife Guard,Figurant
|
Wildlife Guard,Figurant
|
||||||
Kid,Figurant
|
Kid,Figurant
|
||||||
|
Franklin Web,Franklin Webb
|
||||||
|
BIN
figures/rebrickable/10756/set.jpg
Normal file
|
After Width: | Height: | Size: 360 KiB |
BIN
figures/rebrickable/10757/Owen_Grady/head.jpg
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
figures/rebrickable/10757/Owen_Grady/minifig.jpg
Normal file
|
After Width: | Height: | Size: 187 KiB |
BIN
figures/rebrickable/10757/set.jpg
Normal file
|
After Width: | Height: | Size: 401 KiB |
BIN
figures/rebrickable/10758/Claire_Dearing/head.jpg
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
figures/rebrickable/10758/Claire_Dearing/minifig.jpg
Normal file
|
After Width: | Height: | Size: 233 KiB |
BIN
figures/rebrickable/10758/set.jpg
Normal file
|
After Width: | Height: | Size: 550 KiB |
BIN
figures/rebrickable/121801/set.jpg
Normal file
|
After Width: | Height: | Size: 50 KiB |
BIN
figures/rebrickable/121802/Owen_Grady/head.jpg
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
figures/rebrickable/121802/Owen_Grady/minifig.jpg
Normal file
|
After Width: | Height: | Size: 187 KiB |
BIN
figures/rebrickable/121802/set.jpg
Normal file
|
After Width: | Height: | Size: 352 KiB |
BIN
figures/rebrickable/121903/set.jpg
Normal file
|
After Width: | Height: | Size: 548 KiB |
BIN
figures/rebrickable/121904/Owen_Grady/head.jpg
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
figures/rebrickable/121904/Owen_Grady/minifig.jpg
Normal file
|
After Width: | Height: | Size: 187 KiB |
BIN
figures/rebrickable/121904/set.jpg
Normal file
|
After Width: | Height: | Size: 279 KiB |
BIN
figures/rebrickable/122005/set.jpg
Normal file
|
After Width: | Height: | Size: 241 KiB |
BIN
figures/rebrickable/122006/set.jpg
Normal file
|
After Width: | Height: | Size: 315 KiB |
BIN
figures/rebrickable/122007/Owen_Grady/head.jpg
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
figures/rebrickable/122007/Owen_Grady/minifig.jpg
Normal file
|
After Width: | Height: | Size: 386 KiB |
BIN
figures/rebrickable/122007/set.jpg
Normal file
|
After Width: | Height: | Size: 336 KiB |
BIN
figures/rebrickable/122008/set.jpg
Normal file
|
After Width: | Height: | Size: 362 KiB |
BIN
figures/rebrickable/122009/Vic_Hoskins/head.jpg
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
figures/rebrickable/122009/Vic_Hoskins/minifig.jpg
Normal file
|
After Width: | Height: | Size: 509 KiB |
BIN
figures/rebrickable/122009/set.jpg
Normal file
|
After Width: | Height: | Size: 284 KiB |
BIN
figures/rebrickable/122010/set.jpg
Normal file
|
After Width: | Height: | Size: 209 KiB |
BIN
figures/rebrickable/122111/set.jpg
Normal file
|
After Width: | Height: | Size: 379 KiB |
BIN
figures/rebrickable/122112/Henry_Wu/head.jpg
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
figures/rebrickable/122112/Henry_Wu/minifig.jpg
Normal file
|
After Width: | Height: | Size: 177 KiB |
BIN
figures/rebrickable/122112/set.jpg
Normal file
|
After Width: | Height: | Size: 322 KiB |
BIN
figures/rebrickable/122113/Owen_Grady/head.jpg
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
figures/rebrickable/122113/Owen_Grady/minifig.jpg
Normal file
|
After Width: | Height: | Size: 187 KiB |
BIN
figures/rebrickable/122113/set.jpg
Normal file
|
After Width: | Height: | Size: 327 KiB |
BIN
figures/rebrickable/122114/Owen_Grady/head.jpg
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
figures/rebrickable/122114/Owen_Grady/minifig.jpg
Normal file
|
After Width: | Height: | Size: 277 KiB |
BIN
figures/rebrickable/122114/set.jpg
Normal file
|
After Width: | Height: | Size: 414 KiB |
BIN
figures/rebrickable/122115/set.jpg
Normal file
|
After Width: | Height: | Size: 305 KiB |
BIN
figures/rebrickable/122116/Sinjin_Prescott/head.jpg
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
figures/rebrickable/122116/Sinjin_Prescott/minifig.jpg
Normal file
|
After Width: | Height: | Size: 422 KiB |
BIN
figures/rebrickable/122116/set.jpg
Normal file
|
After Width: | Height: | Size: 352 KiB |
BIN
figures/rebrickable/122217/set.jpg
Normal file
|
After Width: | Height: | Size: 422 KiB |
BIN
figures/rebrickable/122218/set.jpg
Normal file
|
After Width: | Height: | Size: 255 KiB |
BIN
figures/rebrickable/122219/set.jpg
Normal file
|
After Width: | Height: | Size: 347 KiB |
BIN
figures/rebrickable/122220/Owen_Grady/head.jpg
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
figures/rebrickable/122220/Owen_Grady/minifig.jpg
Normal file
|
After Width: | Height: | Size: 187 KiB |
BIN
figures/rebrickable/122220/set.jpg
Normal file
|
After Width: | Height: | Size: 435 KiB |
BIN
figures/rebrickable/122221/set.jpg
Normal file
|
After Width: | Height: | Size: 574 KiB |
BIN
figures/rebrickable/122222/set.jpg
Normal file
|
After Width: | Height: | Size: 2.7 MiB |
BIN
figures/rebrickable/122223/Owen_Grady/head.jpg
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
figures/rebrickable/122223/Owen_Grady/minifig.jpg
Normal file
|
After Width: | Height: | Size: 386 KiB |
BIN
figures/rebrickable/122223/set.jpg
Normal file
|
After Width: | Height: | Size: 371 KiB |
BIN
figures/rebrickable/122224/Rainn_DeLaCourt/head.jpg
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
figures/rebrickable/122224/Rainn_DeLaCourt/minifig.jpg
Normal file
|
After Width: | Height: | Size: 547 KiB |
BIN
figures/rebrickable/122224/set.jpg
Normal file
|
After Width: | Height: | Size: 240 KiB |
BIN
figures/rebrickable/122225/set.jpg
Normal file
|
After Width: | Height: | Size: 251 KiB |
BIN
figures/rebrickable/122326/set.jpg
Normal file
|
After Width: | Height: | Size: 375 KiB |
BIN
figures/rebrickable/122327/set.jpg
Normal file
|
After Width: | Height: | Size: 227 KiB |
BIN
figures/rebrickable/122328/Owen_Grady/head.jpg
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
figures/rebrickable/122328/Owen_Grady/minifig.jpg
Normal file
|
After Width: | Height: | Size: 359 KiB |
BIN
figures/rebrickable/122328/set.jpg
Normal file
|
After Width: | Height: | Size: 261 KiB |
BIN
figures/rebrickable/122329/set.jpg
Normal file
|
After Width: | Height: | Size: 376 KiB |
BIN
figures/rebrickable/122330/set.jpg
Normal file
|
After Width: | Height: | Size: 398 KiB |
BIN
figures/rebrickable/122331/Owen_Grady/head.jpg
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
figures/rebrickable/122331/Owen_Grady/minifig.jpg
Normal file
|
After Width: | Height: | Size: 386 KiB |
BIN
figures/rebrickable/122331/set.jpg
Normal file
|
After Width: | Height: | Size: 298 KiB |
BIN
figures/rebrickable/122332/set.jpg
Normal file
|
After Width: | Height: | Size: 160 KiB |
BIN
figures/rebrickable/122333/Owen_Grady/head.jpg
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
figures/rebrickable/122333/Owen_Grady/minifig.jpg
Normal file
|
After Width: | Height: | Size: 386 KiB |
BIN
figures/rebrickable/122333/set.jpg
Normal file
|
After Width: | Height: | Size: 348 KiB |
BIN
figures/rebrickable/122334/Alan_Grant/head.jpg
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
figures/rebrickable/122334/Alan_Grant/minifig.jpg
Normal file
|
After Width: | Height: | Size: 322 KiB |
BIN
figures/rebrickable/122334/set.jpg
Normal file
|
After Width: | Height: | Size: 417 KiB |
BIN
figures/rebrickable/122401/set.jpg
Normal file
|
After Width: | Height: | Size: 125 KiB |
BIN
figures/rebrickable/122402/set.jpg
Normal file
|
After Width: | Height: | Size: 288 KiB |
BIN
figures/rebrickable/122403/Owen_Grady/head.jpg
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
figures/rebrickable/122403/Owen_Grady/minifig.jpg
Normal file
|
After Width: | Height: | Size: 386 KiB |
BIN
figures/rebrickable/122403/set.jpg
Normal file
|
After Width: | Height: | Size: 360 KiB |
BIN
figures/rebrickable/122404/set.jpg
Normal file
|
After Width: | Height: | Size: 127 KiB |
BIN
figures/rebrickable/122405/set.jpg
Normal file
|
After Width: | Height: | Size: 82 KiB |
BIN
figures/rebrickable/122406/set.jpg
Normal file
|
After Width: | Height: | Size: 345 KiB |
BIN
figures/rebrickable/122407/set.jpg
Normal file
|
After Width: | Height: | Size: 271 KiB |
BIN
figures/rebrickable/122408/set.jpg
Normal file
|
After Width: | Height: | Size: 339 KiB |
BIN
figures/rebrickable/122409/set.jpg
Normal file
|
After Width: | Height: | Size: 384 KiB |
BIN
figures/rebrickable/122501/set.jpg
Normal file
|
After Width: | Height: | Size: 355 KiB |
BIN
figures/rebrickable/122502/set.jpg
Normal file
|
After Width: | Height: | Size: 121 KiB |
BIN
figures/rebrickable/122503/Owen_Grady/head.jpg
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
figures/rebrickable/122503/Owen_Grady/minifig.jpg
Normal file
|
After Width: | Height: | Size: 386 KiB |
BIN
figures/rebrickable/122503/set.jpg
Normal file
|
After Width: | Height: | Size: 343 KiB |
BIN
figures/rebrickable/122504/set.jpg
Normal file
|
After Width: | Height: | Size: 342 KiB |
BIN
figures/rebrickable/122505/set.jpg
Normal file
|
After Width: | Height: | Size: 471 KiB |
BIN
figures/rebrickable/122508/Alan_Grant/head.jpg
Normal file
|
After Width: | Height: | Size: 4.8 KiB |
BIN
figures/rebrickable/122508/Alan_Grant/minifig.jpg
Normal file
|
After Width: | Height: | Size: 291 KiB |
BIN
figures/rebrickable/122508/set.jpg
Normal file
|
After Width: | Height: | Size: 170 KiB |
BIN
figures/rebrickable/1370/set.jpg
Normal file
|
After Width: | Height: | Size: 104 KiB |
BIN
figures/rebrickable/1371/set.jpg
Normal file
|
After Width: | Height: | Size: 77 KiB |
BIN
figures/rebrickable/30320/set.jpg
Normal file
|
After Width: | Height: | Size: 134 KiB |
BIN
figures/rebrickable/30382/set.jpg
Normal file
|
After Width: | Height: | Size: 272 KiB |
BIN
figures/rebrickable/30390/set.jpg
Normal file
|
After Width: | Height: | Size: 137 KiB |
BIN
figures/rebrickable/4000031/set.jpg
Normal file
|
After Width: | Height: | Size: 1.2 MiB |