Erreurs Courantes et Solutions
Évitez les pièges fréquents et résolvez rapidement les problèmes grâce à ce guide de dépannage.
Vue d'ensemble
Ce guide documente les erreurs les plus courantes rencontrées par les utilisateurs de FilterMate, avec des solutions claires et des stratégies de prévention.
Navigation Rapide :
- Résultats de Filtre Vides
- Backend PostgreSQL Indisponible
- Performances Lentes
- Résultats Spatiaux Incorrects
- Erreurs d'Expression
- Échecs d'Export
- Historique des Filtres Perdu
- Problèmes de CRS
1. Résultats de Filtre Vides
Symptôme : Le filtre retourne 0 entités, alors que vous attendiez des correspondances.
Causes Courantes
Cause A : Décalage de CRS
Problème : Les couches ont des systèmes de coordonnées différents qui ne se chevauchent pas géographiquement.
Exemple :
Couche 1 : EPSG:4326 (WGS84) - Coordonnées mondiales
Couche 2 : EPSG:2154 (Lambert 93) - France uniquement
Solution : ✅ FilterMate gère automatiquement la reprojection CRS, mais vérifiez que les couches se chevauchent :
- Clic droit sur chaque couche → Zoomer sur la Couche
- Vérifiez que les deux couches apparaissent dans la même zone géographique
- Cherchez l'indicateur 🔄 reprojection dans les logs FilterMate
Prévention :
- Utilisez des couches de la même région géographique
- Vérifiez l'étendue de la couche dans Propriétés → Information
Cause B : Géométries Invalides
Problème : Géométries corrompues ou auto-intersectantes empêchant les opérations spatiales.
Symptômes :
- "Erreur GEOS" dans les logs
- Résultats incohérents
- Certaines entités manquantes de façon inattendue
Solution : ✅ Exécutez la réparation des géométries avant le filtrage :
# Dans la Boîte à Outils de Traitement QGIS
1. Géométrie vectorielle → Réparer les géométries
2. Entrée : Votre couche problématique
3. Sortie : couche_corrigee
4. Utilisez la couche corrigée dans FilterMate
Vérification Rapide :
# Boîte à Outils de Traitement
Géométrie vectorielle → Vérifier la validité
Cause C : Distance de Buffer Trop Petite
Problème : La zone tampon n'atteint aucune entité.
Exemple :
Buffer : 10 mètres
Réalité : L'entité la plus proche est à 50 mètres
Résultat : 0 entités trouvées
Solution : ✅ Augmentez progressivement la distance du buffer :
Essayez : 50m → 100m → 500m → 1000m
✅ Testez d'abord sans buffer :
- Utilisez le prédicat "Intersects" sans buffer
- Si cela retourne des résultats, la distance du buffer est le problème
Cause D : Mauvaises Valeurs d'Attributs
Problème : Filtrage pour des valeurs qui n'existent pas dans les données.
Exemple :
-- Votre expression :
city = 'Paris'
-- Valeurs réelles dans les données :
city = 'PARIS' (majuscules)
city = 'Paris, France' (inclut le pays)
Solution : ✅ Vérifiez d'abord les valeurs réelles des champs :
- Clic droit sur la couche → Table d'Attributs
- Regardez les valeurs réelles dans le champ
- Ajustez l'expression pour correspondre exactement
✅ Utilisez une correspondance insensible à la casse :
-- Au lieu de :
city = 'Paris'
-- Utilisez :
upper(city) = 'PARIS'
-- ou
city ILIKE 'paris'
Cause E : Les Couches ne se Chevauchent pas Géographiquement
Problème : La couche de référence et la couche cible sont dans des emplacements différents.
Exemple :
Cible : Bâtiments à New York
Référence : Routes à Londres
Résultat : Pas de chevauchement = 0 résultats
Solution : ✅ Vérifiez le chevauchement géographique :
- Sélectionnez les deux couches dans le Panneau des Couches
- Clic droit → Zoomer sur les Couches
- Les deux devraient apparaître dans la même vue de carte
Workflow de Débogage pour Résultats Vides
Étape 1 : Testez avec une expression simple
1 = 1 -- Devrait retourner TOUTES les entités
Si cela échoue → Problème de backend ou de couche
Étape 2 : Testez le filtre attributaire seul
-- Supprimez le filtre spatial
-- Test : population > 0
Si cela fonctionne → Problème de configuration spatiale
Étape 3 : Testez le filtre spatial seul
-- Supprimez le filtre attributaire
-- Utilisez un "Intersects" basique sans buffer
Si cela fonctionne → Problème d'expression attributaire
Étape 4 : Vérifiez les logs
QGIS → Vue → Panneaux → Messages de Log → FilterMate
Cherchez les messages d'erreur en rouge
2. Backend PostgreSQL Indisponible
Symptôme : Message d'avertissement : Backend PostgreSQL indisponible - utilisation du fallback
Cause Racine
Problème : Le package Python psycopg2 n'est pas installé dans l'environnement Python de QGIS.
Impact :
- Performances 10-50× plus lentes sur les grands jeux de données
- Pas de vues matérialisées ni de traitement côté serveur
- Repli sur le backend Spatialite ou OGR
Solution : Installer psycopg2
- Windows
- Linux
- macOS
# Méthode A : Shell OSGeo4W (Recommandé)
# Ouvrez le Shell OSGeo4W en tant qu'Administrateur
# Exécutez ces commandes :
py3_env
pip install psycopg2-binary
# Méthode B : Console Python QGIS
# QGIS → Extensions → Console Python
# Exécutez ce code :
import subprocess
subprocess.check_call(['python', '-m', 'pip', 'install', 'psycopg2-binary'])
# Ubuntu/Debian
sudo apt-get install python3-psycopg2
# Ou via pip
pip3 install psycopg2-binary
# Vérifier l'installation
python3 -c "import psycopg2; print(psycopg2.__version__)"
# Via pip (Python QGIS)
/Applications/QGIS.app/Contents/MacOS/bin/pip3 install psycopg2-binary
# Ou via Homebrew
brew install postgresql
pip3 install psycopg2-binary
Vérification
Vérifiez si psycopg2 est installé :
# Console Python QGIS
import psycopg2
print(psycopg2.__version__)
# Attendu : '2.9.x (dt dec pq3 ext lo64)'
Vérifiez les logs FilterMate :
✅ Succès : "Backend PostgreSQL disponible"
❌ Avertissement : "psycopg2 non trouvé, utilisation de Spatialite"
Quand NE PAS S'Inquiéter
Vous pouvez ignorer l'installation PostgreSQL si :
- Jeu de données avec
<10 000entités (Spatialite est assez rapide) - Utilisation de couches OGR (Shapefile, GeoPackage) sans possibilité de migration
- Filtrage occasionnel uniquement (performances non critiques)
- Pas de base de données PostgreSQL disponible
3. Performances Lentes (>30 secondes)
Symptôme : L'opération de filtre prend plus de 30 secondes.
Diagnostic
Vérifiez le backend utilisé :
Panneau FilterMate → Info couche :
Provider : ogr (⚠️ Plus lent)
Provider : spatialite (⏱️ Moyen)
Provider : postgresql (⚡ Plus rapide)
Solutions par Backend
Backend OGR (Shapefile, GeoPackage)
Problème : Pas d'index spatiaux natifs, traitement en mémoire.
Solution 1 : Migrer vers PostgreSQL
# Optimal pour jeux de données >50k entités
1. Configurez PostgreSQL+PostGIS
2. Gestionnaire BD → Importer la couche
3. Reconnectez dans QGIS
4. Accélération 10-50×
Solution 2 : Migrer vers Spatialite
# Bon pour jeux de données 10k-50k entités
1. Boîte à Outils de Traitement → Vecteur général → Empaqueter les couches
2. Choisissez le format Spatialite
3. Accélération 3-5× vs Shapefile
Solution 3 : Optimiser la requête
-- Ajoutez le filtre attributaire EN PREMIER (réduit la portée de la requête spatiale)
population > 10000 AND ...requête spatiale...
-- Au lieu de :
...requête spatiale... AND population > 10000
Backend Spatialite
Problème : Grand jeu de données (>50k entités).
Solution : Migrer vers PostgreSQL
- Amélioration attendue : 5-10× plus rapide
- Requêtes en moins d'une seconde sur 100k+ entités
Contournement : Réduire la portée de la requête
-- Pré-filtrer avec une emprise
bbox($geometry,
$xmin, $ymin,
$xmax, $ymax)
AND ...votre filtre...
Backend PostgreSQL (Déjà Rapide)
Problème : Lent malgré l'utilisation de PostgreSQL (rare).
Causes Possibles :
- ❌ Index spatial manquant
- ❌ Géométries invalides
- ❌ Latence réseau (base de données distante)
Solutions :
-- 1. Vérifiez que l'index spatial existe
SELECT * FROM pg_indexes
WHERE tablename = 'votre_table'
AND indexdef LIKE '%GIST%';
-- 2. Créez l'index si manquant
CREATE INDEX idx_geom ON votre_table USING GIST(geom);
-- 3. Réparez les géométries
UPDATE votre_table SET geom = ST_MakeValid(geom);
Benchmarks de Performance
| Backend | 10k entités | 50k entités | 100k entités |
|---|---|---|---|
| PostgreSQL | 0.1s ⚡ | 0.3s ⚡ | 0.8s ⚡ |
| Spatialite | 0.4s ✓ | 4.5s ⏱️ | 18s ⏱️ |
| OGR (GPKG) | 2.1s | 25s ⚠️ | 95s 🐌 |
| OGR (SHP) | 3.8s | 45s 🐌 | 180s 🐌 |
Recommandation : Utilisez PostgreSQL pour >50k entités.
4. Résultats Spatiaux Incorrects
Symptôme : Des entités éloignées de la géométrie de référence sont incluses dans les résultats.
Causes Courantes
Cause A : Distance de Buffer dans les Mauvaises Unités
Problème : Utilisation de degrés quand vous avez besoin de mètres (ou vice versa).
Exemple :
Buffer : 500 (supposé en mètres)
CRS de la couche : EPSG:4326 (degrés !)
Résultat : Buffer de 500 degrés (~55 000 km !)
Solution : ✅ FilterMate convertit automatiquement les CRS géographiques en EPSG:3857 pour les buffers métriques
- Cherchez l'indicateur 🌍 dans les logs
- Vérification manuelle : Propriétés de la Couche → Information → Unités CRS
✅ Utilisez un CRS approprié :
Degrés : EPSG:4326 (WGS84) - Auto-converti ✓
Mètres : EPSG:3857 (Web Mercator)
Mètres : Zones UTM locales (plus précis)
Cause B : Mauvais Prédicat Spatial
Problème : Utilisation de "Contains" quand vous avez besoin de "Intersects".
Signification des Prédicats :
Intersects : Touche ou chevauche (plus permissif)
Contains : A englobe complètement B (strict)
Within : A complètement à l'intérieur de B (opposé de Contains)
Crosses : Intersection linéaire uniquement
Exemple :
❌ Faux : Contains
- Trouve les parcelles qui CONTIENNENT les routes (opposé !)
✅ Correct : Intersects
- Trouve les parcelles qui TOUCHENT les routes
Solution : Voir le Guide des Prédicats Spatiaux pour un guide visuel.
Cause C : La Couche de Référence est Fausse
Problème : Mauvaise couche sélectionnée comme référence spatiale.
Exemple :
Objectif : Bâtiments près des ROUTES
Réel : Couche de référence = RIVIÈRES
Résultat : Mauvaises entités sélectionnées
Solution : ✅ Vérifiez la liste déroulante de la couche de référence :
- Le nom de la couche doit correspondre à votre intention
- L'icône montre le type de géométrie (point/ligne/polygone)
Étapes de Vérification
Vérification Manuelle :
- Utilisez l'Outil de Mesure QGIS (Ctrl+Shift+M)
- Mesurez la distance de l'entité filtrée à l'entité de référence la plus proche
- La distance devrait être ≤ votre paramètre de buffer
Vérification Visuelle :
- Outil d'Identification → Cliquez sur l'entité de référence
- Clic droit → Zoomer sur l'Entité
- Regardez les entités filtrées environnantes
- Elles devraient former un anneau autour de l'entité de référence (si buffer utilisé)
5. Erreurs de Syntaxe d'Expression
Symptôme : ✗ rouge dans le constructeur d'expression avec un message d'erreur.
Erreurs de Syntaxe Courantes
Guillemets Manquants Autour du Texte
❌ Faux :
city = Paris
✅ Correct :
city = 'Paris'
Noms de Champs Sensibles à la Casse (Spatialite)
❌ Faux (Spatialite) :
name = 'test' -- Le champ est 'NAME', pas 'name'
✅ Correct :
"NAME" = 'test' -- Guillemets doubles pour les champs sensibles à la casse
Utilisation de = avec NULL
❌ Faux :
population = NULL
✅ Correct :
population IS NULL
Concaténation de Chaînes
❌ Faux :
city + ', ' + country
✅ Correct :
city || ', ' || country
Comparaisons de Dates
❌ Faux :
date_field > '2024-01-01' -- Comparaison de chaînes
✅ Correct :
date_field > to_date('2024-01-01')
-- ou
year(date_field) = 2024
Débogage d'Expression
Étape 1 : Testez dans le Constructeur d'Expression
Couche QGIS → Ouvrir la Table d'Attributs →
Calculatrice de Champs → Testez l'expression
Étape 2 : Utilisez l'Aperçu d'Expression
Cliquez sur le bouton "Aperçu" pour voir le résultat sur la première entité
Étape 3 : Simplifiez l'Expression
-- Commencez simple :
1 = 1 -- Toujours vrai
-- Ajoutez de la complexité graduellement :
city = 'Paris'
city = 'Paris' AND population > 100000
6. Échecs d'Export
Symptôme : Le bouton d'export ne fait rien ou affiche une erreur.
Causes Courantes
Cause A : Permission Refusée
Problème : Impossible d'écrire dans le dossier de destination.
Solution :
# Windows : Choisissez un dossier utilisateur
C:\Users\VotreNom\Documents\
# Linux/macOS : Vérifiez les permissions
chmod 755 /chemin/vers/dossier/sortie
Cause B : Caractères Invalides dans le Nom de Fichier
Problème : Caractères spéciaux non autorisés par le système de fichiers.
❌ Faux :
exports/data:2024.gpkg -- Deux-points non autorisé (Windows)
✅ Correct :
exports/data_2024.gpkg
Cause C : CRS Cible Invalide
Problème : Le CRS sélectionné n'existe pas ou n'est pas reconnu.
Solution : ✅ Utilisez des codes CRS courants :
EPSG:4326 - WGS84 (mondial)
EPSG:3857 - Web Mercator (cartes web)
EPSG:2154 - Lambert 93 (France)
Cause D : Le Nom de Couche Contient des Espaces (export PostgreSQL)
Problème : Les noms de tables PostgreSQL avec espaces nécessitent des guillemets.
Solution :
❌ Faux : mon nom de couche
✅ Correct : mon_nom_de_couche
7. Historique des Filtres Perdu Après Redémarrage
Symptôme : L'historique Annuler/Rétablir est vide après la fermeture de QGIS.
Comportement Attendu
L'historique des filtres est basé sur la session - il n'est pas sauvegardé dans le fichier de projet QGIS.
Pourquoi :
- L'historique peut devenir volumineux (100+ opérations)
- Peut contenir des critères de filtre sensibles
- Optimisation des performances
Contournement : Utilisez les Favoris
Sauvegardez les filtres importants :
- Appliquez votre filtre
- Cliquez sur le bouton "Ajouter aux Favoris" (icône ⭐)
- Donnez-lui un nom descriptif
- Les favoris SONT sauvegardés dans le fichier de projet
Rappelez les filtres favoris :
- Cliquez sur le menu déroulant "Favoris"
- Sélectionnez le filtre sauvegardé
- Cliquez sur "Appliquer"
8. Problèmes de Décalage CRS
Symptôme : Les entités apparaissent au mauvais endroit ou les requêtes spatiales échouent.
Gestion Automatique des CRS
FilterMate reprojette automatiquement les couches pendant les opérations spatiales.
Vous verrez :
🔄 Reprojection de la couche de EPSG:4326 vers EPSG:3857
C'est NORMAL et attendu - aucune action nécessaire.
Quand le CRS Cause des Problèmes
Problème : CRS Géographique Utilisé pour les Buffers
Problème : Distance de buffer interprétée comme des degrés au lieu de mètres.
Solution FilterMate : ✅ Convertit automatiquement EPSG:4326 → EPSG:3857 pour les opérations métriques
- L'indicateur 🌍 apparaît dans les logs
- Aucune intervention manuelle nécessaire
Remplacement Manuel (si nécessaire) :
- Clic droit sur la couche → Exporter → Sauvegarder les Entités Sous
- Définissez le CRS sur un système projeté local (UTM, State Plane, etc.)
- Utilisez la couche exportée dans FilterMate
Problème : La Couche Affiche un Mauvais Emplacement
Problème : La couche a un mauvais CRS assigné.
Symptômes :
- La couche apparaît loin de l'emplacement attendu
- Peut être de l'autre côté du monde
- Saute à 0°,0° (Golfe de Guinée)
Solution :
# Corrigez le CRS de la couche
1. Clic droit sur la couche → Définir le CRS de la Couche
2. Sélectionnez le bon CRS (vérifiez la documentation des données)
3. N'utilisez pas "Définir le CRS du Projet depuis la Couche" - corrige uniquement l'affichage
Identifier le Bon CRS :
- Vérifiez le fichier de métadonnées (.xml, .prj, .qmd)
- Regardez les valeurs de coordonnées dans la table d'attributs
- Grands nombres (ex: 500 000) → CRS Projeté
- Petits nombres (-180 à 180) → CRS Géographique
- Cherchez sur Google la source des données pour les informations CRS
Liste de Vérification de Prévention
Avant de filtrer, vérifiez :
Qualité des Données
- Les couches se chargent et s'affichent correctement
- Les géométries sont valides (exécutez Vérifier les Géométries)
- La table d'attributs a les valeurs attendues
- Les couches se chevauchent géographiquement
Configuration
- Bonne couche cible sélectionnée
- Bonne couche de référence (pour les requêtes spatiales)
- L'expression affiche une coche verte ✓
- Distance et unités de buffer appropriées
- Le prédicat spatial correspond à l'intention
Performance
- Le type de backend est approprié pour la taille du jeu de données
- psycopg2 installé si utilisation de PostgreSQL
- Les index spatiaux existent (PostgreSQL)
Obtenir de l'Aide
Ressources en Libre-Service
- Vérifiez les Logs : QGIS → Vue → Panneaux → Messages de Log → FilterMate
- Lisez le Message d'Erreur : Il dit souvent exactement ce qui ne va pas
- Cherchez dans la Documentation : Utilisez la barre de recherche (Ctrl+K)
- Essayez une Version Simplifiée : Supprimez la complexité pour isoler le problème
Support Communautaire
- 🐛 Rapports de Bugs : GitHub Issues
- 💬 Questions : GitHub Discussions
- 📧 Contact : Incluez la version QGIS, la version FilterMate et les logs d'erreur
Résumé
Erreurs les Plus Courantes :
- Résultats vides → Vérifiez les valeurs d'attributs et la distance de buffer
- PostgreSQL indisponible → Installez psycopg2
- Performances lentes → Utilisez PostgreSQL pour les grands jeux de données
- Mauvais résultats spatiaux → Vérifiez les unités de buffer et le prédicat
- Erreurs d'expression → Vérifiez la syntaxe et les noms de champs
Points Clés :
- FilterMate gère les CRS automatiquement (cherchez les indicateurs)
- Testez toujours avec des expressions simplifiées d'abord
- Vérifiez les logs pour des messages d'erreur détaillés
- PostgreSQL offre les meilleures performances pour >50k entités
- L'historique des filtres est basé sur la session (utilisez les Favoris pour la persistance)
Toujours bloqué ? Consultez le Guide de Dépannage ou posez votre question sur GitHub Discussions.