.. image:: pyeco.png
:height: 20
:alt: Economie
:target: http://www.xavierdupre.fr/app/ensae_teaching_cs/helpsphinx/td_2a_notions.html#pour-un-profil-plutot-economiste
.. image:: pystat.png
:height: 20
:alt: Statistique
:target: http://www.xavierdupre.fr/app/ensae_teaching_cs/helpsphinx/td_2a_notions.html#pour-un-profil-plutot-data-scientist
.. _l-py2a-cartes:
Cartes
++++++
.. index:: carte
Les cartes ne sont jamais aussi simples qu'elles en ont l'air,
que ce soit en :epkg:`Python` ou un autre langage. La première
des tâches consiste à récupérer le décor : départements,
régions, frontières, rivières. Les frontières des pays
sont souvent disponibles avec peu d'efforts mais dès qu'il s'agit
d'une granularité plus fine, il faut récupérer des données
comme `Contours des EPCI 2013 `_.
Ces contours sont décrits sous la forme de
`shapefile `_.
Chaque pays a souvent son propre système de coordonnées et il faut
convertir les coordonnées dans un même système,
`longitude, latitude `_
le plus souvent. Le module :epkg:`pyproj` vient aider à cela.
Une fois qu'on a tous les éléments, on peut commencer à tracer la carte
ce qui revient à convertir les coordonnées *latitude, longitude*
dans un repère *x, y*, ce que fait un module comme :epkg:`cartopy`.
.. image:: cfr.png
:width: 300
Et puis on s'aperçoit parfois que cette représentation figée
ne suffit pas et qu'il faut à la fois avoir une vue d'ensemble
et pouvoir zoomer sur une zone en particulier. On utilise
alors le :epkg:`javascript` avec :epkg:`bokeh`. Et puis, parfois,
on ne veut pas seulement quelques détails mais tous les détails
d'une carte comme les routes, les villes ou les villages. Le plus simple
est alors de projeter des points sur des systèmes de cartes
comme :epkg:`OpenStreetMap` avec le module
:epkg:`folium`. Enfin, peut-être qu'on n'a pas envie
de vouloir connaître tous ces modules et d'avoir une interface
unique, c'est ce vers quoi tend le module :epkg:`geopandas`.
*Notebooks*
* :ref:`td1acenoncesession12carterst`
* :ref:`td1acorrectionsession12rst`
* `Evolution d'une population `_
* `Evolution d'une population - correction `_
*Formats de données*
* :ref:`Système de coordonnées ` (et données carroyées)
* format de cartes
`shapefiles `_,
`topoJSON `_,
`geoJSON `_,
* `Projections sphériques et conversion `_
* conversion de coordonnées en longitude / latitude
* librairies :epkg:`cartopy`, ...
* sources :
`DataMaps `_,
`Find Data `_
*Modules*
* :epkg:`cartopy`
* `pyshp `_
* `shapely `_
* `pyproj `_
* `geopy `_
* :epkg:`basemap` (maintenu jusqu'en 2020, il faut préférer :epkg:`cartopy`)
* `geoviews `_
* `geopandas `_
*Modules avec Open Street Map*
* `ipyleaflet `_
* `folium `_