Reference RasterTools

Référence structurée de la classe RasterTools.

RasterTools encapsule un raster (via rasterio) et fournit des méthodes chaînables de prétraitement, d’analyse et d’export. Chaque méthode qui transforme les données renvoie une nouvelle instance de RasterTools (le raster d’origine n’est pas modifié), ce qui permet de chaîner les appels.

from cartograpy.processing import RasterTools

# Depuis un fichier
rt = RasterTools("chemin/vers/raster.tif")

# Depuis un tuple (ndarray, profile rasterio)
rt = RasterTools((data, profile))

rt2 = (rt
    .reproject_raster("EPSG:32630")
    .resample_raster(10)
    .clip_raster(geodf))
rt2.export_geotiff("resultat.tif")
Note

82 méthodes publiques, groupées ci-dessous par famille. Chaque entrée montre la signature et un résumé d’une ligne : voir le docstring de la méthode dans cartograpy/processing/raster.py pour le détail des paramètres.

get_raster_info()

Retourne les métadonnées essentielles du raster (driver, dtype, dimensions, CRS, transform, nodata, résolution, emprise).

check_raster_metadata()

Vérifie les métadonnées critiques et signale les anomalies (CRS manquant, nodata non défini, pixels non carrés, raster vide).

validate_raster()

Retourne True si le raster n’a aucun problème critique (basé sur check_raster_metadata).

check_nodata()

Analyse les valeurs NoData du raster (nombre de pixels concernés, pourcentage).

check_band_count()

Retourne le nombre de bandes.

check_resolution()

Retourne la résolution (pixel_x, pixel_y).

check_alignment(other)

Vérifie la compatibilité (CRS, résolution, alignement de grille) avec un autre raster.

set_crs(crs)

Attribue un CRS au raster sans reprojeter les données.

reproject_raster(target_crs, resampling="nearest")

Reprojette le raster vers un autre CRS.

resample_raster(target_resolution, resampling="nearest")

Rééchantillonne le raster à une résolution cible (dans les unités du CRS).

align_rasters(reference)

Aligne ce raster sur la grille (CRS, résolution, origine) d’un raster de référence.

snap_raster_grid(reference)

Alias de align_rasters.

band_stacking(others)

Empile les bandes de plusieurs rasters (même grille) en un seul raster multibande.

mosaic_rasters(others, method="first")

Mosaïque plusieurs rasters (method : 'first', 'last', 'min', 'max', 'mean').

clip_raster(geodf, crop=True, all_touched=False)

Découpe le raster selon un GeoDataFrame ou une géométrie shapely.

crop_raster(bbox)

Découpe le raster par une emprise (xmin, ymin, xmax, ymax).

mask_raster(geodf, invert=False)

Masque (passe en NoData) les pixels hors du GeoDataFrame, sans recadrer l’emprise.

extract_by_extent(bbox)

Alias de crop_raster.

replace_nodata(old_nodata, new_nodata)

Remplace une valeur NoData par une autre.

fill_nodata(max_search_distance=100, smoothing_iterations=0)

Interpole les pixels NoData à partir des pixels valides voisins.

scale_raster_values(factor=1.0, offset=0.0)

Applique une transformation linéaire pixel = pixel * factor + offset.

convert_dtype(target_dtype)

Convertit le type de données du raster.

normalize_raster(band_index=None, vmin=0.0, vmax=1.0)

Normalise les valeurs d’une ou toutes les bandes entre vmin et vmax (min-max scaling).

cloud_masking(cloud_band_index, cloud_values, replace_with=None)

Masque les pixels nuageux à partir d’une bande de masque qualité (QA).

shadow_masking(nir_band, threshold=0.1, replace_with=None)

Masque les ombres via un seuil sur la bande proche infrarouge.

band_selection(band_indices)

Sélectionne un sous-ensemble de bandes.

remove_small_patches(min_size, band_index=0, connectivity=1)

Supprime les taches connexes plus petites que min_size pixels.

majority_filter(size=3, band_index=0)

Filtre majoritaire : remplace chaque pixel par la valeur la plus fréquente dans son voisinage.

sieve_raster(threshold, band_index=0, connectivity=4)

Filtre de tamisage (rasterio.features.sieve) : supprime les groupes de pixels sous threshold.

smooth_classes(size=3, band_index=0)

Alias de majority_filter, pour lisser une classification.

raster_calculator(expression, band_vars=None)

Applique une expression NumPy libre sur les bandes (ex. "(B4 - B3) / (B4 + B3)").

apply_formula(expression, band_vars=None)

Alias de raster_calculator.

band_math(expression, band_vars=None)

Alias de raster_calculator.

ndvi(red_band=0, nir_band=1)

Calcule le NDVI (NIR - Red) / (NIR + Red).

ndwi(green_band=0, nir_band=1)

Calcule le NDWI (Green - NIR) / (Green + NIR).

ndbi(swir_band=0, nir_band=1)

Calcule le NDBI (SWIR - NIR) / (SWIR + NIR).

spectral_index(band_a, band_b)

Indice spectral normalisé générique (A - B) / (A + B).

reclassify_raster(rules, band_index=0)

Reclasse une bande selon des règles (liste de (min, max, nouvelle_valeur) ou dict {ancien: nouveau}).

remap_values(mapping, band_index=0)

Remappe les valeurs via un dictionnaire {ancien: nouveau} (délègue à reclassify_raster).

threshold_raster(threshold, band_index=0, above=1, below=0)

Binarise une bande autour d’un seuil.

raster_statistics(band_index=0)

Statistiques descriptives d’une bande (min, max, mean, std, median, pixels valides).

band_statistics()

raster_statistics appliqué à chaque bande du raster.

histogram_raster(band_index=0, bins=256)

Histogramme d’une bande.

zonal_statistics(geodf, stats=None, band_index=0)

Statistiques zonales par polygone ('min', 'max', 'mean', 'std', 'median', 'sum', 'count').

focal_mean(size=3, band_index=0)

Filtre focal moyen (moyenne mobile).

focal_median(size=3, band_index=0)

Filtre focal médian.

focal_max(size=3, band_index=0)

Filtre focal maximum.

focal_min(size=3, band_index=0)

Filtre focal minimum.

moving_window_analysis(func, size=3, band_index=0)

Applique une fonction personnalisée par fenêtre glissante.

compute_slope(band_index=0, degrees=True)

Calcule la pente à partir d’un MNT.

compute_aspect(band_index=0, degrees=True)

Calcule l’exposition (aspect) à partir d’un MNT.

compute_hillshade(band_index=0, azimuth=315, altitude=45)

Calcule l’ombrage du relief (hillshade).

compute_curvature(band_index=0)

Calcule la courbure du terrain.

compute_tpi(size=3, band_index=0)

Topographic Position Index (élévation moins moyenne locale).

compute_tri(size=3, band_index=0)

Terrain Ruggedness Index (moyenne des écarts absolus avec les voisins).

flow_direction(band_index=0)

Direction d’écoulement D8 à partir d’un MNT.

flow_accumulation(band_index=0)

Accumulation de flux, dérivée de flow_direction.

watershed_analysis(band_index=0, threshold=100)

Délimitation simplifiée des bassins versants à partir de l’accumulation de flux.

unsupervised_classification(n_classes=5, band_indices=None, method="kmeans")

Classification non supervisée (KMeans / MiniBatchKMeans, nécessite scikit-learn).

supervised_classification(training_data, label_column, band_indices=None, method="random_forest", **kwargs)

Classification supervisée à partir d’échantillons d’entraînement ('random_forest', 'svm', 'gradient_boosting', nécessite scikit-learn).

train_classifier(training_data, label_column, band_indices=None, method="random_forest", **kwargs)

Entraîne un classificateur et le retourne, sans l’appliquer au raster.

predict_raster_classes(classifier, band_indices=None)

Applique un classificateur déjà entraîné à l’ensemble du raster.

accuracy_assessment(classified, reference_data, label_column, band_index=0)

Évalue la précision d’une classification (accuracy globale, kappa, matrice de confusion, précision par classe).

change_detection(other, band_index=0)

Différence entre ce raster et un autre.

raster_difference(other, band_index=0)

Alias de change_detection.

post_classification_comparison(other, band_index=0)

Compare deux rasters classifiés (code de transition classe_t1 * 100 + classe_t2).

time_series_analysis(others, band_index=0, stat="mean")

Analyse temporelle sur une pile de rasters ('mean', 'std', 'min', 'max', 'trend').

weighted_overlay(others, weights)

Superposition pondérée de plusieurs rasters critères.

suitability_analysis(criteria_rasters, weights, thresholds=None)

Analyse d’aptitude multicritère avec normalisation et filtrage optionnel par seuils.

normalize_criteria(band_index=0, method="minmax")

Normalise un critère ('minmax' ou 'zscore') avant analyse multicritère.

combine_weighted_layers(others, weights)

Alias de weighted_overlay.

polygonize_raster(band_index=0)

Convertit une bande classifiée en GeoDataFrame de polygones.

raster_to_points(band_index=0, skip_nodata=True)

Convertit chaque pixel en point (GeoDataFrame).

contours_from_raster(band_index=0, levels=10)

Extrait des courbes de niveau (GeoDataFrame de lignes).

apply_colormap(colormap="viridis", band_index=0)

Applique une colormap matplotlib et renvoie un raster RGB (3 bandes, uint8).

stretch_contrast(band_index=0, percentile_low=2, percentile_high=98)

Étirement de contraste par percentiles.

build_pyramids(factors=None)

Construit des pyramides (overviews) sur le fichier disque pour un affichage rapide. Défaut : [2, 4, 8, 16].

create_overview(factor=4)

Crée un raster à résolution réduite (aperçu, rééchantillonnage par moyenne).

export_geotiff(path, compress="lzw")

Exporte en GeoTIFF.

export_cog(path)

Exporte en Cloud Optimized GeoTIFF (tuilé + overviews).

export_ascii_grid(path, band_index=0)

Exporte en ASCII Grid (.asc).

export_png_map(path, colormap="viridis", band_index=0, dpi=150)

Exporte une image PNG colorisée avec barre de couleur.