cartiflette 
Les fonds de carte officiels français, en une ligne de code.
Contours officiels de l'IGN (ADMIN EXPRESS COG CARTO) enrichis des métadonnées de l'Insee : communes, arrondissements municipaux, départements, régions, bassins de vie, zones d'emploi, unités urbaines, aires d'attraction des villes, avec ou sans les DROM rapprochés de la métropole.
Installation
pip install cartiflette
Python 3.10 ou plus récent.
Utilisation
from cartiflette import carti_download
departements = carti_download(
values="France",
borders="DEPARTEMENT",
filter_by="FRANCE_ENTIERE_DROM_RAPPROCHES",
year=2026,
simplification=50,
)
departements.plot("POPULATION")
borders: niveau des contours (COMMUNE,COMMUNE_ARRONDISSEMENT,DEPARTEMENT,REGION,BASSIN_VIE,ZONE_EMPLOI,UNITE_URBAINE,AIRE_ATTRACTION_VILLES).filter_byetvalues: zone couverte, par exemplefilter_by="REGION"etvalues=["11", "84"], oufilter_by="FRANCE_ENTIERE"etvalues="France". Les codes de région sous 10 s'écrivent indifféremment1,"1"ou"01".simplification:0(contours complets) ou50(plus léger).year: millésime du Code officiel géographique.
Le résultat est un GeoDataFrame geopandas (EPSG:4326).
Formats : GeoParquet d'abord
Chaque niveau est publié en GeoParquet dans un seul fichier, que DuckDB lit
partiellement : seules les parties correspondant aux valeurs demandées sont
téléchargées (environ 2 Mo pour les communes d'un département). Le client lit le
GeoParquet dès qu'il existe, même si vectorfile_format="geojson" est demandé (un
avertissement l'indique). Pour les millésimes publiés seulement en GeoJSON (2022),
le client le détecte et lit le GeoJSON.
Aucun fichier GeoJSON n'est publié à partir de 2025 : force=True, qui force la
lecture du GeoJSON, ne vaut que pour les millésimes qui en ont (2022). Pour obtenir
du GeoJSON des millésimes récents, par exemple depuis R ou JavaScript, utiliser
l'API : https://cartiflette-api.lab.sspcloud.fr/v1/geojson.
Rester dans DuckDB
Toute la lecture est faite avec DuckDB. Avec engine="duckdb", le résultat reste
une relation DuckDB, pour continuer en SQL sans passer par geopandas :
communes = carti_download(
values=["11", "84"],
borders="COMMUNE",
filter_by="REGION",
year=2026,
engine="duckdb",
)
communes.aggregate("INSEE_REG, sum(POPULATION)")
Proxy
Déclarer la variable d'environnement https_proxy : elle est transmise à DuckDB.
import os
os.environ["https_proxy"] = "http://mon-proxy:8080"
En savoir plus
- Site de cartiflette : exemples et cas d'usage, aussi en R et en JavaScript.
- Dépôt GitHub : pipeline de production et documentation technique.
cartiflette est un projet collaboratif lancé par des agents de l'État dans le cadre
du Programme 10 %. Pour contribuer, voir
CONTRIBUTING.md.
Metadata
Release files for cartiflette 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cartiflette-0.2.1.tar.gz | 141.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cartiflette-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 153.4 kB
Release files / cartiflette-0.2.1.tar.gz
| Download URL | cartiflette-0.2.1.tar.gz |
|---|---|
| Size | 141.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ab7bc4f2e942a664e6b0085a790151f236de2aa2587c49d73b5616cc266922aa
|
|
BLAKE2b-256 checksum How to use checksums |
0e148c2381a010a243f8fb7d8755d0a480f6bdea6886e32df025b98e5dcd7eee
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / cartiflette-0.2.1-py3-none-any.whl
| Download URL | cartiflette-0.2.1-py3-none-any.whl |
|---|---|
| Size | 12.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a7a98c5663e7520a6b494239e77ce6690bf04181504f1e452ab8ccdc4efca4bf
|
|
BLAKE2b-256 checksum How to use checksums |
f1e8fc70fa3c541786f43ed480518b84dc7a75864a6dad3fb99f9f3d2303c0f5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|