@@ -57,14 +57,20 @@ données géographiques pourront être manipulées
57
57
comme n'importe quel type de données avec ` Python ` .
58
58
La complexité induite par la dimension spatiale ne sera pas ressentie.
59
59
60
+ ::: {.cell .markdown}
61
+ ``` {=html}
60
62
<details>
61
63
<summary>
64
+
62
65
Illustration du principe des données spatiales (documentation de `sf`, l'équivalent de `Geopandas` en `R`)
66
+
63
67
</summary>
64
- ![ ] ( https://user-images.githubusercontent.com/520851/50280460-e35c1880-044c-11e9-9ed7-cc46754e49db.jpg ) {width="70%"}
65
- </details >
66
68
69
+ {width="70%"}
67
70
71
+ </details>
72
+ ```
73
+ :::
68
74
[ ^ noteQGIS ] : D'ailleurs, le logiciel de cartographie spécialisé QGIS, s'appuie sur ` Python `
69
75
pour les manipulations de données nécessaires avant de réaliser une carte.
70
76
@@ -79,6 +85,38 @@ Ce chapitre illustre à partir d’exemples pratiques certains principes centrau
79
85
Si vous êtes intéressés par ` R ` ,
80
86
une version très proche de ce TP est disponible dans [ ce cours de ` R ` ] ( https://rgeo.linogaliana.fr/exercises/geospatial-wrangling.html ) .
81
87
88
+ ::: {.cell .markdown}
89
+ ``` {=html}
90
+ <div class="alert alert-info" role="alert">
91
+ <h3 class="alert-heading"><i class="fa-solid fa-comment"></i> Note</h3>
92
+ ```
93
+
94
+ Le package ` cartiflette ` est expérimental
95
+ et n'est disponible que sur
96
+ [ ` Github ` ] ( https://github.com/InseeFrLab/cartogether ) , pas sur ` PyPi ` .
97
+ Il est amené à évoluer rapidement et cette page sera mise à jour
98
+ quand de nouvelles fonctionalités (notamment l'utilisation d'` API ` )
99
+ seront disponibles pour encore simplifier la récupération de
100
+ contours géographiques.
101
+
102
+ Pour installer ` cartiflette ` , il est nécessaire d'utiliser les commandes suivantes
103
+ depuis un ` Jupyter Notebook ` (si vous utilisez la ligne de commande directement,
104
+ vous pouvez retirer les ` ! ` en début de ligne):
105
+
106
+ ``` {python}
107
+ #| eval: false
108
+ !pip install requests py7zr geopandas openpyxl tqdm s3fs PyYAML xlrd
109
+ !pip install git+https://github.com/inseefrlab/cartiflette@80b8a5a28371feb6df31d55bcc2617948a5f9b1a
110
+ ```
111
+
112
+ Ces commandes permettent de récupérer l'ensemble du code
113
+ source depuis [ ` Github ` ] ( https://github.com/InseeFrLab/cartiflette )
114
+
115
+ ``` {=html}
116
+ </div>
117
+ ```
118
+ :::
119
+
82
120
## Préliminaires
83
121
84
122
Avant de se lancer dans le TD, il est nécessaire d'installer quelques
@@ -115,7 +153,7 @@ sont quant à elles détaillées dans le chapitre
115
153
précédent.
116
154
117
155
``` {python}
118
- #| echo: false
156
+ #| echo: true
119
157
#| output: false
120
158
!pip install requests py7zr geopandas openpyxl tqdm s3fs PyYAML xlrd
121
159
!pip install git+https://github.com/inseefrlab/cartiflette@80b8a5a28371feb6df31d55bcc2617948a5f9b1a
@@ -176,22 +214,14 @@ communes_borders = download_vectorfile_url_all(
176
214
2 . Regarder les premières lignes des données. Identifier la différence avec
177
215
un _ dataframe_ standard.
178
216
179
- <details >
180
-
181
- <summary >
182
- Premières lignes des données
183
- </summary >
184
-
185
217
``` {python}
186
218
# 2) Regarder les premières lignes
187
219
communes_borders.head()
188
220
```
189
221
190
- </details >
191
-
192
222
3 . Afficher le ` crs ` de ` communes_borders ` . Ce dernier contrôle la
193
223
transformation de l'espace tridimensionnel terrestre en une surface plane.
194
- Utiliser ` st_transform ` pour transformer les données en Lambert 93, le
224
+ Utiliser ` to_crs ` pour transformer les données en Lambert 93, le
195
225
système officiel (code EPSG 2154).
196
226
197
227
4 . Afficher les communes des Hauts de Seine (département 92) et utiliser la méthode
@@ -447,6 +477,7 @@ sur notre perception de la taille des pays.
447
477
<summary >
448
478
Voir la carte interactive
449
479
</summary >
480
+
450
481
``` {ojs}
451
482
html`<div class="grid-container">
452
483
<div class="viewof-projection">${viewof projectionBertin}</div>
@@ -584,24 +615,16 @@ stations = stations.to_crs(petite_couronne.crs)
584
615
principales_stations = stations.sort_values("capacity", ascending = False).head(50)
585
616
```
586
617
587
- <details >
588
- <summary >
589
618
La couche de base obtenue à l'issue de la question 4.
590
- </summary >
591
619
592
620
``` {python}
593
621
# 4. petite couronne
594
622
base = petite_couronne.boundary.plot(edgecolor = "black", linewidth = 0.5)
595
623
base
596
624
```
597
625
598
- </details >
599
-
600
626
601
- <details >
602
- <summary >
603
627
Puis en y ajoutant les limites départementales (question 5).
604
- </summary >
605
628
606
629
``` {python}
607
630
# 5. Ajout de la couche des départements
@@ -610,22 +633,15 @@ petite_couronne_departements.boundary.plot(ax = base, edgecolor = "blue", linewi
610
633
base
611
634
```
612
635
613
- </details >
614
-
615
-
616
- <details >
617
- <summary >
618
636
Puis les stations (question 6).
619
- </summary >
620
637
621
638
``` {python}
622
639
# 6. Ajout des stations
623
640
base = petite_couronne.boundary.plot(edgecolor = "black", linewidth = 0.5)
624
641
petite_couronne_departements.boundary.plot(ax = base, edgecolor = "blue", linewidth = 0.7)
625
- principales_stations.plot(ax= base, column = "capacity", markersize = "capacity", color = "red", alpha = 0.4)
642
+ principales_stations.plot(ax= base, markersize = "capacity", color = "red", alpha = 0.4)
626
643
base
627
644
```
628
- </details >
629
645
630
646
La carte finale, après mise en forme:
631
647
@@ -634,7 +650,7 @@ La carte finale, après mise en forme:
634
650
#7. sans axe et avec titre
635
651
base = petite_couronne.boundary.plot(edgecolor = "black", linewidth = 0.5)
636
652
petite_couronne_departements.boundary.plot(ax = base, edgecolor = "blue", linewidth = 0.7)
637
- principales_stations.plot(ax= base, column = "capacity", markersize = "capacity", color = "red", alpha = 0.4)
653
+ principales_stations.plot(ax= base, markersize = "capacity", color = "red", alpha = 0.4)
638
654
base.set_axis_off()
639
655
base.set_title("Les 50 principales stations de Vélib")
640
656
base
0 commit comments