Reference VectorTools
VectorTools encapsule un GeoDataFrame et expose ses opérations sous forme de méthodes chaînables. Elle vit dans cartograpy/processing/vector.py et s’instancie ainsi :
from cartograpy.processing import VectorTools
vt = VectorTools(gdf) # lève TypeError si gdf n'est pas un GeoDataFrameChaque méthode retourne une nouvelle instance de VectorTools (le GeoDataFrame interne n’est jamais modifié sur place) : elles sont donc chaînables. Récupérez le résultat final avec .gdf :
result = (
vt.fix_invalid()
.remove_empty()
.reproject_layer("EPSG:32630")
.buffer(500)
.gdf
)Exceptions à cette règle, qui retournent directement une valeur et non un VectorTools : les méthodes de contrôle (validity, duplicates, check_adjacency, find_touching_features, build_contiguity_matrix), les méthodes d’analyse qui renvoient un dict/DataFrame/objet externe (nearest_neighbor_analysis, distance_matrix, morans_i, gearys_c, spatial_autocorrelation_report, landscape_metrics, fragmentation_index, edge_density, patch_connectivity, coverage_analysis, gravity_model, idw_interpolation, kriging, tin_surface, spatial_diff, evolution_stats, spatial_weights, build_network, shortest_path, service_area, network_distance, isochrone), et les méthodes d’export (to_gpkg, to_shp, to_geojson, to_csv) qui renvoient le chemin écrit.
Certaines méthodes chargent une dépendance optionnelle à l’appel et lèvent une erreur explicite si elle manque : networkx (réseau/accessibilité), scikit-learn (spatial_clustering), libpysal/esda (statistiques spatiales), pykrige (kriging).
| Méthode | Description |
|---|---|
validity() |
Series booléenne : validité de chaque géométrie. |
fix_invalid() |
Corrige les géométries invalides (shapely.make_valid). |
remove_empty() |
Supprime les géométries vides ou nulles. |
duplicates() |
Retourne les entités dupliquées (toutes occurrences). |
drop_duplicates(subset=None) |
Supprime les doublons. |
snap_geometries(tolerance) |
Accroche les géométries entre elles selon une tolérance. |
remove_slivers(min_area) |
Supprime les polygones sous min_area. |
eliminate_small_polygons(min_area) |
Fusionne les polygones sous min_area avec leur plus grand voisin (au lieu de les supprimer). |
close_gaps(min_area) |
Fusionne les petits trous (< min_area) au polygone voisin le plus proche. |
resolve_overlaps() |
Résout les chevauchements en soustrayant du plus petit polygone des deux. |
enforce_topology_rules() |
Raccourci : fix_invalid() puis remove_empty(). |
| Méthode | Description |
|---|---|
get_crs() |
Retourne le CRS courant. |
set_crs(crs, allow_override=False) |
Attribue un CRS sans reprojeter. |
reproject_layer(target_crs) |
Reprojette la couche (to_crs). |
rename_fields(mapping) |
Renomme des colonnes ({ancien: nouveau}). |
select_fields(columns) |
Ne garde que les colonnes listées (+ géométrie). |
drop_fields(columns) |
Supprime les colonnes listées. |
cast_field_types(type_mapping) |
Convertit les types ({"col": float, ...}). |
fill_missing_values(value=None, method=None, columns=None) |
Remplit les valeurs manquantes (value, "ffill" ou "bfill"). |
normalize_text_fields(columns=None) |
Normalise les champs texte (strip + Title Case). |
| Méthode | Description |
|---|---|
filter_by_attribute(column, values) |
Filtre par valeurs d’attribut (scalaire ou liste). |
filter_by_expression(expression) |
Filtre via une expression pandas (df.query). |
filter_by_location(mask_gdf, predicate="intersects") |
Conserve les entités qui satisfont un prédicat spatial avec un masque. |
select_by_bbox(bbox) |
Sélectionne dans une bbox (xmin, ymin, xmax, ymax). |
clip(mask) |
Découpe par un masque (GeoDataFrame, VectorTools ou géométrie). |
extract_by_mask(mask) |
Alias de clip(). |
crop_to_extent(bbox) |
Découpe selon une bbox. |
| Méthode | Description |
|---|---|
multipart_to_singlepart() |
Éclate les multi-géométries (explode). |
singlepart_to_multipart(by) |
Regroupe par champ en multi-géométries (dissolve). |
explode_geometries() |
Alias de multipart_to_singlepart(). |
convert_geometry_type(target_type) |
Convertit vers "point", "line" ou "polygon". |
line_to_polygon() |
Convertit des lignes fermées en polygones (polygonize). |
polygon_to_line() |
Convertit des polygones en lignes de contour (boundary). |
buffer(distance) |
Zone tampon autour de chaque géométrie. |
centroid() |
Remplace les géométries par leur centroïde. |
convex_hull() |
Remplace les géométries par leur enveloppe convexe. |
minimum_bounding_box() |
Remplace les géométries par leur rectangle englobant (envelope). |
simplify_geometry(tolerance, preserve_topology=True) |
Simplifie les géométries. |
densify_geometry(max_segment_length) |
Densifie les géométries (segmentize). |
smooth_geometry(iterations=3) |
Lisse les géométries (algorithme de Chaikin). |
| Méthode | Description |
|---|---|
area(column_name="area") |
Ajoute une colonne de surface. |
perimeter(column_name="perimeter") |
Ajoute une colonne de périmètre. |
length(column_name="length") |
Ajoute une colonne de longueur (alias surface pour les lignes). |
compactness(column_name="compactness") |
Indice de compacité 4πA / P². |
shape_index(column_name="shape_index") |
Indice de forme P / √A. |
| Méthode | Description |
|---|---|
check_adjacency() |
Matrice d’adjacence binaire (touches). |
find_touching_features() |
Liste de paires (i, j) d’entités qui se touchent. |
detect_overlaps() |
GeoDataFrame des chevauchements entre entités (aire, géométrie). |
detect_gaps() |
GeoDataFrame des trous entre polygones. |
build_contiguity_matrix(method="queen") |
Matrice de contiguïté ("queen" ou "rook"). |
| Méthode | Description |
|---|---|
intersection(other) |
Overlay intersection avec une autre couche. |
union(other) |
Overlay union. |
difference(other) |
Overlay difference. |
symmetric_difference(other) |
Overlay symmetric_difference. |
identity(other) |
Overlay identity (garde tout de self + attributs de other). |
spatial_join(other, how="inner", predicate="intersects") |
Jointure spatiale (sjoin). |
join_by_nearest(other, max_distance=None) |
Jointure au plus proche voisin (sjoin_nearest). |
point_in_polygon_join(polygons) |
Jointure points-dans-polygones (predicate="within"). |
dissolve(by, aggfunc="first") |
Fusionne les géométries par champ. |
aggregate_by_field(by, aggfunc) |
Équivalent de dissolve() avec fonction d’agrégation explicite. |
group_and_summarize(by, summary) |
Regroupe + résume (summary = {"col": "sum", ...}), fusionne aussi les géométries. |
Certaines méthodes nécessitent networkx ou scikit-learn (import différé, erreur explicite si absent).
| Méthode | Description |
|---|---|
distance_to_nearest(other, column_name="dist_nearest") |
Distance de chaque entité au plus proche élément d’une autre couche. |
nearest_neighbor_analysis() |
Indice R de Clark-Evans (dict : distances observée/attendue, indice R). |
within_distance(other, distance) |
Conserve les entités à moins de distance d’une autre couche. |
distance_matrix(other=None, label_field=None, method="centroid") |
Matrice de distance ("centroid" ou "boundary"). |
build_network() |
Construit un graphe networkx à partir de lignes. |
shortest_path(source, target) |
Plus court chemin entre deux points, snappés aux nœuds du réseau. Requiert networkx. |
service_area(source, max_cost) |
Zone de desserte (enveloppe convexe des nœuds atteignables). Requiert networkx. |
network_distance(source, target) |
Coût du plus court chemin entre deux points. |
point_density(radius, column_name="density") |
Densité de points dans un rayon donné. |
kernel_density_from_points(bandwidth, resolution=100) |
Estimation de densité par noyau (dict : grille numpy). |
spatial_clustering(eps, min_samples=5, column_name="cluster") |
Clustering DBSCAN. Requiert scikit-learn. |
hotspot_analysis(column=None, k=8) |
Z-scores locaux sur voisinage k-NN, colonnes z_score/hotspot. |
Nécessitent libpysal (spatial_weights) et esda (les indices eux-mêmes).
| Méthode | Description |
|---|---|
spatial_weights(method="queen", k=4, distance=None) |
Matrice de poids spatiaux ("queen", "rook", "knn", "distance"). |
morans_i(column, method="queen", **kwargs) |
Autocorrélation spatiale globale (I de Moran). |
local_morans(column, method="queen", significance=0.05, **kwargs) |
LISA : indicateurs locaux (lisa_I, lisa_p, lisa_q, lisa_cluster). |
gearys_c(column, method="queen", **kwargs) |
Indice C de Geary. |
spatial_autocorrelation_report(column, method="queen", **kwargs) |
Rapport combiné Moran + Geary + LISA. |
| Méthode | Description |
|---|---|
spatial_diff(other, key_column) |
Compare deux états d’une couche : entités ajoutées/supprimées/modifiées. |
track_changes(other, key_column, geom_tolerance=0.0) |
GeoDataFrame de suivi géométrique (change_type, variations de surface, distance de Hausdorff). |
temporal_filter(date_column, start=None, end=None) |
Filtre par plage temporelle. |
evolution_stats(other, key_column, measure_cols) |
Variation absolue et en % de colonnes numériques entre deux états. |
landscape_metrics(class_column) |
Métriques paysagères par classe (nb patches, surfaces, diversité de Shannon). |
fragmentation_index(class_column) |
Indice de fragmentation par classe (1 − plus grand patch / surface totale). |
patch_connectivity(max_distance, class_column=None) |
Graphe de connectivité entre patches à portée de max_distance. Requiert networkx. |
edge_density(class_column) |
Densité de lisières (périmètre total / surface totale) par classe. |
isolation_index(class_column=None) |
Distance au plus proche patch de même classe. |
| Méthode | Description |
|---|---|
isochrone(source, time_breaks, speed) |
Zones isochrones sur le réseau autour d’un point source. Requiert networkx. |
coverage_analysis(facilities, population_col, radius) |
Taux de couverture de population par des équipements dans un rayon. |
voronoi_allocation(facilities=None) |
Polygones de Voronoï/Thiessen pour l’allocation spatiale. |
gravity_model(destinations, weight_col, beta=1.0) |
Modèle gravitaire d’interaction spatiale. |
market_area(centers, demand_col, friction=2.0) |
Zones de chalandise (modèle de Huff). |
| Méthode | Description |
|---|---|
idw_interpolation(value_col, resolution=100, power=2) |
Interpolation par pondération inverse de la distance. |
thiessen_polygons() |
Alias de voronoi_allocation(facilities=None). |
kriging(value_col, variogram_model="linear", resolution=100) |
Krigeage ordinaire. Requiert pykrige. |
tin_surface(value_col) |
Triangulation de Delaunay → surface TIN. |
contour_lines(value_col, levels=10, resolution=100) |
Lignes d’isovaleurs à partir de points interpolés. |
| Méthode | Description |
|---|---|
reclassify_attributes(column, mapping) |
Reclasse les valeurs d’une colonne selon un dictionnaire. |
create_indicator_fields(rules) |
Crée des colonnes indicatrices ({"nom": expression_ou_callable}). |
calculate_scores(weights, score_column="score") |
Score pondéré normalisé (min-max) sur plusieurs colonnes. |
rank_features(column, ascending=True, rank_column="rank") |
Classe les entités par rang sur une colonne. |
to_gpkg(path, layer=None) |
Exporte en GeoPackage, retourne le chemin. |
to_shp(path) |
Exporte en Shapefile, retourne le chemin. |
to_geojson(path) |
Exporte en GeoJSON, retourne le chemin. |
to_csv(path, include_geometry=True) |
Exporte en CSV (géométrie en WKT si demandé), retourne le chemin. |