.. 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 `_