[general]
name=STAT GEOM QC
qgisMinimumVersion=3.16
qgisMaximumVersion=3.99
description=Quality control and geometric statistics for vector layers, with a correctness score and exportable report.
about=STAT GEOM QC analyses QGIS vector layers and detects quality issues: null or empty geometries, invalid geometries, self-intersections, overlaps/intersections between polygons, duplicates, small polygons (configurable m² threshold) and building inconsistencies (AGL > AMSL). It computes a weighted correctness score (0-100), shows a modern summary (gauge, indicators, breakdown) and produces an exportable report (HTML/CSV/JSON). Built-in QGIS actions: select flagged features, create a point error layer locating each issue exactly (self-intersection nodes for invalid geometries, representative point otherwise), and selective geometry repair (checkboxes) that writes the result to a NEW file without modifying the source layer. Native PyQGIS port of the STAT GEOM application, with no external dependencies.
version=2.9.4
author=Adel Bchini
email=adel.bchini@gmail.com
tags=quality,quality control,qc,geometry,validation,topology,statistics,vector,correctness,buildings,duplicates,overlaps,intersection
category=Vector
icon=icon.svg
experimental=False
deprecated=False
homepage=https://github.com/Bchini/stat-geom-qc
tracker=https://github.com/Bchini/stat-geom-qc/issues
repository=https://github.com/Bchini/stat-geom-qc
changelog=2.9.4 - Confort : la couche d'erreurs (points) s'affiche en croix rouges avec étiquette du type d'erreur ; les dialogues rouvrent au dernier dossier utilisé ; noms de fichiers d'export assainis et rapport navigateur propre à chaque couche ; nombres affichés au format français (séparateur de milliers par espace) ; infobulles ajoutées sur les options d'analyse.
    2.9.3 - Analyse plus rapide : la boucle principale ne lit que la géométrie (et AGL/AMSL si nécessaire) au lieu de tous les attributs, l'aperçu attributaire passant par une lecture séparée limitée — gain net sur les couches à nombreux champs, sans changement de résultat. L'interface reste fluide (traitements en arrière-plan depuis la 2.9.0).
    2.9.2 - La couche d'erreurs est désormais une couche de POINTS localisés exactement sur l'anomalie : nœud d'auto-intersection pour les géométries invalides, point représentatif (sur la surface) pour les autres cas (chevauchement, petit polygone, doublon, AGL). Chaque point porte le FID source, la ou les catégories et le détail de l'erreur.
    2.9.1 - Compatibilité Qt6/QGIS futur : énumérations Qt et QGIS pleinement qualifiées (RenderHint, AlignmentFlag, ResizeMode, GeometryType, AreaUnit, WriterError…) et exec_() renommé exec() ; corrige les 28 alertes du contrôle Qt6 du dépôt, sans changement de comportement et compatible PyQt5.
    2.9.0 - Sécurité : suppression des motifs try/except/pass et try/except/continue signalés par le scanner de plugins.qgis.org (remplacés par contextlib.suppress et des gardes explicites) ; le paquet passe désormais Bandit sans aucune alerte. Analyse et réparation exécutées en arrière-plan (QgsTask) : l'interface QGIS ne se fige plus et l'annulation est immédiate. Paramètres d'analyse mémorisés d'une session à l'autre. Validation de couche avant lancement (absente, invalide, vide, sans géométrie) avec messages clairs. Robustesse accrue face aux couches supprimées pendant un traitement, aux attributs illisibles et aux géométries fautives. Sortie de réparation promue en multi-parties (fin des avertissements GeoPackage). Refactor interne : constantes centralisées et module de tâches dédié.
    2.8.3 - Clean security scan: normalize file permissions to 0644 in the package and add nosec annotations to two defensive try/except blocks in the overlap-repair code.
    2.8.2 - Add the required LICENSE file (GNU GPL v2) inside the plugin package.
    2.8.1 - Fix metadata.txt parsing error on plugins.qgis.org caused by a reserved percent sign in the changelog; rephrased to remove it.
    2.8.0 - Metadata description and about translated to English for the QGIS plugin repository.
    2.7.0 - Le contrôle bâtiments (AGL vs AMSL) est désormais DÉSACTIVÉ par défaut (à activer manuellement au besoin).
    2.6.0 - Métadonnées de publication : liens homepage / repository / tracker renseignés (dépôt GitHub public) pour l'upload sur plugins.qgis.org.
    2.5.0 - Auto-correction PRUDENTE des chevauchements : seuls les recouvrements mineurs (surface rognée sous un seuil réglable) sont corrigés en rognant le plus petit polygone ; le plus grand garde sa forme. Les cas importants sont laissés à l'opérateur, avec la liste des FID à revoir.
    2.4.0 - Projet personnel : retrait de toute référence à un tiers (nom et email de contact mis à jour). Durcissement sécurité (hachage BLAKE2b pour les doublons, nettoyage des imports inutilisés).
    2.3.0 - L'auto-intersection devient une catégorie de problème à part entière : entités traçées (FID), sélectionnables, exportables dans la couche d'erreurs et réparables via une case à cocher dédiée (make valid). Détection d'invalidité renforcée (balayage de toutes les erreurs de validation).
    2.2.0 - Réparation géométrique sélective par cases à cocher (invalides / nulles-vides / doublons / petits polygones) écrite dans un NOUVEAU fichier sans modifier l'original. Le score ne peut plus valoir 100/100 s'il subsiste des anomalies. Auteur mis à jour (Adel Bchini).
    2.1.0 - Détection des chevauchements, doublons, petits polygones, contrôle bâtiments AGL/AMSL, score de correctness et rapports HTML/CSV/JSON.
