Skip to main content

cartiflette cartiflette

Les fonds de carte officiels français, en une ligne de code.

PyPI Téléchargements Tests Lint Licence MIT Python 3.10+ DuckDB GeoParquet

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.

Exemples d'utilisation de cartiflette

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,
)
departements.plot("POPULATION")
  • borders : niveau des contours (COMMUNE, COMMUNE_ARRONDISSEMENT, IRIS à partir de 2025, DEPARTEMENT, REGION, BASSIN_VIE, ZONE_EMPLOI, UNITE_URBAINE, AIRE_ATTRACTION_VILLES), ou les carreaux de l'Insee avec leurs données Filosofi (CARREAU_200M, CARREAU_1KM, jamais simplifiés).
  • filter_by et values : zone couverte, par exemple filter_by="REGION" et values=["11", "84"], ou filter_by="FRANCE_ENTIERE" et values="France". Les codes de région sous 10 s'écrivent indifféremment 1, "1" ou "01".
  • simplification : part des points retirés, 0 (contours complets), 50 ou 80 (le plus léger, par défaut). Pour 2022, publié seulement en GeoJSON, le défaut est 50.
  • year : millésime du Code officiel géographique.

Le résultat est un GeoDataFrame geopandas (EPSG:4326).

Filtrer : where

where garde les polygones qui vérifient une expression SQL DuckDB, sur leurs attributs ou leur géométrie (fonctions ST_* de l'extension spatiale, coordonnées en longitude, latitude) :

# Communes de plus de 2 000 habitants d'Occitanie
carti_download(
    values="76",
    borders="COMMUNE",
    filter_by="REGION",
    year=2026,
    where="POPULATION > 2000",
)

# Communes qui touchent une emprise (la Camargue)
carti_download(
    values="France",
    borders="COMMUNE",
    filter_by="FRANCE_ENTIERE",
    year=2026,
    where="ST_Intersects(geometry, ST_MakeEnvelope(4.1, 43.3, 4.9, 43.75))",
)

# Communes dont le centre est à moins de 30 km du Capitole de Toulouse
carti_download(
    values="France",
    borders="COMMUNE",
    filter_by="FRANCE_ENTIERE",
    year=2026,
    where="ST_Distance_Sphere(ST_Centroid(geometry), ST_Point(1.4442, 43.6047)) < 30000",
)

Sur le GeoParquet, le filtre est appliqué pendant la lecture : seules les parties utiles du fichier sont téléchargées.

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

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.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cartiflette 0.4.0
File Size Uploaded
cartiflette-0.4.0.tar.gz 147.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cartiflette 0.4.0
File Interpreter ABI Platform
cartiflette-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 161.6 kB

Release files / cartiflette-0.4.0.tar.gz

Download URL cartiflette-0.4.0.tar.gz
Size 147.2 kB
Tags Source
SHA-256 checksum
How to use checksums
7f26202db7856437ca0c033e2dc2b315798c0d86667d6c483cf11da3dce5cc4b
BLAKE2b-256 checksum
How to use checksums
b5cde37a3c8438fd568efe588227f6ef528f87083fa005c39d1507541c005293
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","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.4.0-py3-none-any.whl

Download URL cartiflette-0.4.0-py3-none-any.whl
Size 14.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d1b9c5b58a152a1469ee8bf6d37b81651c02274d1056caf6aa619297a65c983d
BLAKE2b-256 checksum
How to use checksums
45eea64ef9cb6757578514fe2d778259fabb35cbb6d10117297b0438fcc643e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","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 history Release notifications | RSS feed

This release

0.4.0 This release

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.1.9

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.3

2 release files

0.0.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page